diff --git a/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js b/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js index 3891f72aa8e..e08ec81db60 100644 --- a/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js +++ b/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js @@ -1,11 +1,11 @@ /** This controller supports the interface for SiteSettings. - @class AdminSiteSettingsController + @class AdminSiteSettingsController @extends Ember.ArrayController @namespace Discourse @module Discourse -**/ +**/ Discourse.AdminSiteSettingsController = Ember.ArrayController.extend(Discourse.Presence, { filter: null, onlyOverridden: false, @@ -16,15 +16,18 @@ Discourse.AdminSiteSettingsController = Ember.ArrayController.extend(Discourse.P @property filteredContent **/ filteredContent: (function() { - var filter, - _this = this; + + // If we have no content, don't bother filtering anything if (!this.present('content')) return null; + + var filter; if (this.get('filter')) { filter = this.get('filter').toLowerCase(); } + var adminSettingsController = this; return this.get('content').filter(function(item, index, enumerable) { - if (_this.get('onlyOverridden') && !item.get('overridden')) return false; + if (adminSettingsController.get('onlyOverridden') && !item.get('overridden')) return false; if (filter) { if (item.get('setting').toLowerCase().indexOf(filter) > -1) return true; if (item.get('description').toLowerCase().indexOf(filter) > -1) return true; @@ -66,5 +69,5 @@ Discourse.AdminSiteSettingsController = Ember.ArrayController.extend(Discourse.P cancel: function(setting) { setting.resetValue(); } - + }); diff --git a/app/assets/javascripts/admin/models/site_setting.js b/app/assets/javascripts/admin/models/site_setting.js index 86eeaac39f1..6a4f542a9d2 100644 --- a/app/assets/javascripts/admin/models/site_setting.js +++ b/app/assets/javascripts/admin/models/site_setting.js @@ -1,55 +1,96 @@ /** Our data model for interacting with site settings. - @class SiteSetting + @class SiteSetting @extends Discourse.Model @namespace Discourse @module Discourse -**/ +**/ Discourse.SiteSetting = Discourse.Model.extend({ - - // Whether a property is short. - short: (function() { - if (this.blank('value')) return true; - return this.get('value').toString().length < 80; - }).property('value'), - // Whether the site setting has changed - dirty: (function() { - return this.get('originalValue') !== this.get('value'); - }).property('originalValue', 'value'), + /** + Is the boolean setting true? - overridden: (function() { - var defaultVal, val; - val = this.get('value'); - defaultVal = this.get('default'); - if (val && defaultVal) { - return val.toString() !== defaultVal.toString(); + @property enabled + **/ + enabled: function(key, value) { + + if (arguments.length === 1) { + // get the boolean value of the setting + if (this.blank('value')) return false; + return this.get('value') === 'true'; + + } else { + // set the boolean value of the setting + this.set('value', value ? 'true' : 'false'); + + // We save booleans right away, it's not like a text field where it makes sense to + // undo what you typed in. + this.save(); } - return val !== defaultVal; - }).property('value'), + }.property('value'), + + /** + Has the user changed the setting? If so we should save it. + + @property dirty + **/ + dirty: function() { + return this.get('originalValue') !== this.get('value'); + }.property('originalValue', 'value'), + + /** + Has the setting been overridden from its default value? + + @property overridden + **/ + overridden: function() { + var val = this.get('value'); + var defaultVal = this.get('default'); + + if (val === null) val = ''; + if (defaultVal === null) defaultVal = ''; + + return val.toString() !== defaultVal.toString(); + }.property('value'), + + /** + Reset the setting to its original value. + + @method resetValue + **/ resetValue: function() { this.set('value', this.get('originalValue')); }, + /** + Save the setting's value. + + @method save + **/ save: function() { // Update the setting - var _this = this; + var setting = this; return jQuery.ajax("/admin/site_settings/" + (this.get('setting')), { data: { value: this.get('value') }, type: 'PUT', success: function() { - _this.set('originalValue', _this.get('value')); + setting.set('originalValue', setting.get('value')); } }); } }); Discourse.SiteSetting.reopenClass({ + + /** + Retrieve all settings from the server + + @method findAll + **/ findAll: function() { - var result; - result = Em.A(); + var result = Em.A(); jQuery.get("/admin/site_settings", function(settings) { return settings.each(function(s) { s.originalValue = s.value; diff --git a/app/assets/javascripts/admin/templates/site_settings.js.handlebars b/app/assets/javascripts/admin/templates/site_settings.js.handlebars index 1389833846e..8016088b041 100644 --- a/app/assets/javascripts/admin/templates/site_settings.js.handlebars +++ b/app/assets/javascripts/admin/templates/site_settings.js.handlebars @@ -1,6 +1,6 @@
Gemelde inhoud verborgen.
' archetypes: - regular: + regular: title: "Standaard-topic" unsubscribed: @@ -212,7 +212,6 @@ nl: discourse_org_access_key: "De toegangscode voor het discourse.org nickname-register" title: "titel van deze website" - restrict_access: "beperk forumtoegang aan gebruikers tenzij dit wachtwoord door hen is ingevuld" access_password: "restrict_access (Beperk Toegang) staat aan. Zorg ervoor dat dit wachtwoord staat ingevuld" queue_jobs: "zet verschillende taken in een queue binnen sidekiq, als ongeldige queues zich op dezelfde lijn bevinden" crawl_images: "zet het ophalen van afbeeldingen van externe bronnen aan" @@ -222,7 +221,6 @@ nl: imgur_endpoint: "endpoint voor het uploaden van imgur.com-afbeeldingen" max_image_width: "maximale breedte voor een afbeelding in een post" category_featured_topics: "aantal topics die worden weergegeven in de categorie-lijst" - popup_delay: "Lengte van tijd in ms voordat popups zich tonen op het scherm" add_rel_nofollow_to_user_content: "Voeg 'rel nofollow' toe aan alle gebruikers-content behalve voor interne links (inclusief parent domeinen). NB: Als je dit verandert moet je ook alle 'baked markdown' updaten" exclude_rel_nofollow_domains: "Een commagescheiden lijst van domeinen waar 'nofollow' niet is toegevoegd. (voorbeelddomein.com zal automatisch sub.voorbeelddomein.com toestaan)" post_excerpt_maxlength: "Maximale lengte in karakters van een post-uittreksel." @@ -323,7 +321,7 @@ nl: admin_js: type_to_filter: "typ om te filteren..." - admin: + admin: title: 'Discourse Beheer' dashboard: @@ -338,7 +336,7 @@ nl: delete: "Verwijder Post" delete_title: "verwijder post (als het de eerste post is van een topic, verwijdert dit het topic)" - customize: + customize: title: "Aanpassingen" header: "Header" css: "Stylesheet" @@ -429,9 +427,9 @@ nl: # This section is exported to the javascript for i18n js: - share: - topic: 'deel een link naar dit topic' - post: 'deel een link naar deze post' + share: + topic: 'deel een link naar dit topic' + post: 'deel een link naar deze post' edit: 'bewerk de titel en categorie van dit topic' not_implemented: "Deze functie is helaas nog niet beschikbaar, sorry!" @@ -485,7 +483,7 @@ nl: invited_by: "Uitgenodigd door" trust_level: "Vertrouwensniveau" - change_username: + change_username: action: "wijzig" title: "Wijzig Gebruikersnaam" confirm: "Er kunnen consequenties zijn als je je gebruikersnaam wijzigt. Weet je zeker dat je dit wilt doen?" @@ -499,7 +497,7 @@ nl: error: "Er was een fout bij het wijzigen van je e-mailadres. Wellicht is deze al in gebruik?" success: "We hebben je een mail gestuurd naar dat adres. Volg de bijgeleverde bevestigingsinstructies." - email: + email: title: "E-mail" instructions: "Je e-mail adres zal nooit openbaar zichtbaar zijn." ok: "Dat ziet er goed uit! We zullen je een e-mail sturen ter bevestiging." @@ -507,12 +505,12 @@ nl: authenticated: "Je e-mail is goedgekeurd bij {{provider}}." frequency: "We zullen je alleen maar mailen als we je een tijd niet gezien hebben, en als je toevallig hetgeen waarover we je mailen nog niet hebt gezien op onze site." - name: + name: title: "Naam" instructions: "De langere versie van je naam; dit hoeft niet uniek te zijn." too_short: "Je naam is te kort." ok: "Wat een mooie naam!" - username: + username: title: "Gebruikersnaam" #instructions: "Mensen kunnen naar je verwijzen als @{{username}}. Dit is een ongeregistreerde nickname. Je kan deze registreren op discourse.org." instructions: "Mensen kunnen naar je verwijzen als @{{username}}." @@ -532,7 +530,7 @@ nl: log_out: "Log Uit" website: "Website" email_settings: "E-mail" - email_digests: + email_digests: title: "Wanneer ik de site niet bezoek, stuur me een mail met de laatste updates" daily: "dagelijks" weekly: "wekelijks" @@ -542,17 +540,17 @@ nl: email_private_messages: "Ontvang een mail wanneer iemand je een privé-bericht heeft gestuurd." other_settings: "Overige" - + new_topic_duration: label: "Beschouw topics als nieuw wanneer" not_viewed: "ik ze nog heb niet bekeken" last_here: "ze gepost waren sinds ik hier voor het laast was" after_n_days: - one: "ze in de afgelopen dag gepost zijn" - other: "ze de afgelopen {{count}} dagen gepost zijn" + one: "ze in de afgelopen dag gepost zijn" + other: "ze de afgelopen {{count}} dagen gepost zijn" after_n_weeks: - one: "ze in de afgelopen week gepost zijn" - other: "ze in de laaste {{count}} weken gepost zijn" + one: "ze in de afgelopen week gepost zijn" + other: "ze in de laaste {{count}} weken gepost zijn" auto_track_topics: "Houd automatisch topics bij die ik bezoek" auto_track_options: @@ -565,7 +563,7 @@ nl: one: "na 1 minuut" other: "na {{count}} minuten" - invited: + invited: title: "Uitnodigingen" user: "Uitgenodigde Gebruiker" none: "{{username}} heeft nog geen mensen uitgenodigd voor deze site." @@ -580,19 +578,19 @@ nl: days_visited: "Dagen Bezocht" account_age_days: "accountleeftijd in dagen" - password: + password: title: "Wachtwoord" too_short: "Je wachtwoord is te kort." ok: "Je wachtwoord ziet er goed uit." - ip_address: + ip_address: title: "Laatste IP-adres" - avatar: + avatar: title: "Avatar" instructions: "Wij gebruiken Gravatar voor Avatars die op je e-mailadres gebaseerd zijn" filters: - all: "Alle" + all: "Alle" loading: "Laden..." close: "Sluit" @@ -631,7 +629,7 @@ nl: invite: "Heb je nog geen account?" failed: "Er ging iets mis, wellicht is het e-mailadres al geregistreerd. Probeer de "Wachtwoord Vergeten"-link" - forgot_password: + forgot_password: title: "Wachtwoord Vergeten" action: "Ik ben mijn wachtwoord vergeten" invite: "Vul je gebruikersnaam of e-mailadres in, en we sturen je een wachtwoord-herstel mail." @@ -664,11 +662,11 @@ nl: message: "Authenticatie met Yahoo (zorg ervoor dat je pop up blocker uitstaat)" composer: - saving_draft_tip: "aan het opslaan" - saved_draft_tip: "opgeslagen" - saved_local_draft_tip: "lokaal opgeslagen" + saving_draft_tip: "aan het opslaan" + saved_draft_tip: "opgeslagen" + saved_local_draft_tip: "lokaal opgeslagen" - save_edit: "Bewaar Wijziging" + save_edit: "Bewaar Wijziging" reply: "Reageer" create_topic: "Maak Topic" create_pm: "Maak Privé-bericht" @@ -707,7 +705,7 @@ nl: local_tip: "klik om een afbeelding vanaf je apparaat te selecteren." upload: "Upload" - search: + search: title: "zoek naar topics, posts, gebruikers of categoriëen" placeholder: "typ je zoekterm hier" no_results: "Geen resultaten gevonden." @@ -721,7 +719,7 @@ nl: title: 'Favoriet' help: 'voeg dit topic toe aan je favorietenlisjt' - topics: + topics: no_favorited: "Je hebt nog geen topics tussen je Favorieten staan. Om een topic toe te wijzen aan je Favorieten, klik of druk op de ster naast de topictitel.." no_unread: "Je hebt geen ongelezen topics om te lezen." no_new: "Je hebt geen nieuwe topics om te lezen." @@ -729,7 +727,7 @@ nl: no_posted: "Je hebt nog niet in een topic gepost." no_popular: "Er zijn geen populaire topics. Dat is best wel sneu." - topic: + topic: create_in: 'Maak een {{categoryName}} Topic' create: 'Maak Topic' create_long: 'Maak een Nieuw Topic' @@ -774,7 +772,7 @@ nl: "1_2": 'Je krijgt alleen een notificiatie als iemand je @naam noemt of reageert op je post.' "0": 'Je negeert alle notificaties in dit topic.' "0_2": 'Je negeert alle notificaties in dit topic.' - watching: + watching: title: "Bekijken" description: "je zal alle ongelezen en nieuwe post aantallen zien, plus de notificaties van @naam vermeldingen en alle nieuwe posts in dit topic." tracking: @@ -801,11 +799,11 @@ nl: multi_select: "Zet Multi-Select Aan/Uit" convert_to_topic: "Zet om naar Normaal Topic" - reply: + reply: title: 'Reageer' help: 'begin met het opzetten van een reactie op dit topic' - share: + share: title: 'Deel' help: 'Deel een link naar dit topic' @@ -819,11 +817,11 @@ nl: success: "Bedankt! We hebben deze gebruiker uitgenodigd om deel te nemen aan dit Privé-gesprek." error: "Sorry, er is iets misgegaan bij het uitnodigen van deze gebruiker" - invite_reply: + invite_reply: title: 'Nodig Vrienden Uit Om Te Reageren' help: 'verstuur uitnodigingen naar vrienden zodat zij met één klik kunnen reageren op dit topic' email: "We zullen je vrienden een korte e-mail sturen waardoor zij op dit topic kunnen reageren door op een link te klikken." - email_placeholder: 'e-mailadres' + email_placeholder: 'e-mailadres' success: "Bedankt! We hebben een uitnodiging verstuurd naar {{email}}. We laten je direct weten wanneer ze je uitnodiging hebben geaccepteerd. Check de "Uitnodigingen"-tab op je gebruikerspagina om bij te houden wie je hebt uitgenodigd." error: "Sorry, we kunnen deze persoon niet uitnodigen. Wellicht is deze al een gebruiker op onze site?" @@ -838,7 +836,7 @@ nl: title: "Verplaats Geslecteerde Posts" topic_name: "Nieuwe Topicnaam:" error: "Sorry, er is iets misgegaan bij het verplaatsen van deze posts." - instructions: + instructions: one: "Je staat op het punt een nieuw topic aan te maken en het te vullen met de post die je geselecteerd hebt." other: "Je staat op het punt een nieuw topic aan te maken en het te vullen met de {{count}} posts die je geselecteerd hebt." @@ -853,7 +851,7 @@ nl: other: "Je hebt {{count}} posts geselecteerd." post: - reply: "Je reageerd nu op {{link}} door {{replyAvatar}} {{username}}" + reply: "Je reageerd nu op {{link}} door {{replyAvatar}} {{username}}" reply_topic: "Reageer op {{link}}" edit: "Bewerk {{link}}" in_reply_to: "in reactie op" @@ -902,13 +900,13 @@ nl: one: "1 persoon {{long_form}}" other: "{{count}} mensen {{long_form}}" - edits: + edits: one: 1 berwerking other: "{{count}} bewerkingen" zero: geen bewerkingen delete: - confirm: + confirm: one: "Weet je zeker dat je deze post wilt verwijderen?" other: "Weet je zeker dat je al deze posts wilt verwijderen?" @@ -966,27 +964,27 @@ nl: categories_list: "Categorie-lijst" filters: - popular: + popular: title: "Populair" help: "de meest populaire recente topics" - favorited: + favorited: title: "Favorieten" help: "topics die je als Favoriet hebt ingesteld" - read: + read: title: "Gelezen" help: "topics die je hebt gelezen" - categories: + categories: title: "Categorieën" title_in: "Categorie - {{categoryName}}" help: "alle topics gesorteerd op categorie" unread: - title: + title: zero: "Ongelezen" one: "Ongelezen (1)" other: "Ongelezen ({{count}})" help: "gevolgde topics met ongelezen posts" - new: - title: + new: + title: zero: "Nieuw" one: "Nieuw (1)" other: "Nieuw ({{count}})" @@ -1005,7 +1003,7 @@ nl: types: category: 'Categorieën' topic: 'Topics' - user: 'Gebruikers' + user: 'Gebruikers' youve_posted: "Jij Hebt Dit Gepost" original_poster: "Originele Poster" @@ -1039,7 +1037,7 @@ nl: edited: "bewerkte" move_posts: - moderator_post: + moderator_post: one: "Ik heb een post naar een nieuw topic verplaatst: %{topic_link}" other: "Ik heb %{count} posts naar een nieuw topic verplaatst: %{topic_link}" @@ -1053,7 +1051,7 @@ nl: visible_enabled: "Dit topic is nu zichtbaar; het zal weer worden weergegeven in topiclijsten." visible_disabled: "Dit topic is nu onzichtbaar; het zal niet worden weergegeven in topiclijsten, en kan alleen via een directe link worden bezocht." - login: + login: not_approved: "Je account is nog niet goedgekeurd. Je zal via de mail een bericht van ons ontvangen wanneer je klaar bent om in te kunnen loggen." incorrect_username_email_or_password: "Incorrecte gebruikersnaam, e-mailadres of wachtwoord" wait_approval: "Bedankt voor je inschrijving. We zullen het je laten weten als je account is goedgekeurd." @@ -1139,7 +1137,7 @@ nl: subject_template: "Bericht van %{site_name}: Je Post is verborgen wegens meldingen uit de site-gemeenschap" text_body_template: | Hallo, - + Dit is een geautomatiseerd bericht van %{site_name} om je te laten weten dat de volgende post is verborgen naar aanleiding van meldingen binnen de site-gemeenschap. %{base_url}%{url} @@ -1151,7 +1149,7 @@ nl: Je kan je post bewerken na %{edit_delay} minuten, en het zal automatisch weer zichtbaar worden. Dit verhoogt je forum vertrouwensniveau. - Echter, als de post een tweede keer wordt verborgen door de site-gemeenschap, wordt er een moderator ingelicht. + Echter, als de post een tweede keer wordt verborgen door de site-gemeenschap, wordt er een moderator ingelicht. Zij kunnen verdere actie ondernemen, waaronder een mogelijke schorsing van je account. @@ -1196,9 +1194,9 @@ nl: - Om terug te gaan naar de homepage, kan je op elk moment **op het icoontje in de linker bovenhoek klikken.** - - Mocht je iets willen opzoeken, naar je gebruikerspagina gaan, of ergens anders toe willen navigeren, klik dan op de icoontjes in de rechter bovenhoek. - - Wanneer je een topic leest, kan je naar boven scrollen door op de topic-titel bovenaan de pagina te klikken. - Om de *onderkant* te bereiken, klik op op de pijl naar beneden op de topic voortgangsindicator aan de onderkant van de pagina, + - Mocht je iets willen opzoeken, naar je gebruikerspagina gaan, of ergens anders toe willen navigeren, klik dan op de icoontjes in de rechter bovenhoek. + - Wanneer je een topic leest, kan je naar boven scrollen door op de topic-titel bovenaan de pagina te klikken. + Om de *onderkant* te bereiken, klik op op de pijl naar beneden op de topic voortgangsindicator aan de onderkant van de pagina, of klik je op het Laatste Post-veld in de topic-samenvatting onder de eerste post. welcome_approved: @@ -1236,7 +1234,7 @@ nl: Om nogmaals in te loggen kan je het volgende gebruiken: - 1. Facebook, Google, Twitter, of vele andere ondersteunde logingegevens + 1. Facebook, Google, Twitter, of vele andere ondersteunde logingegevens -- let er wel op dat dit **het zelfde e-mailadres** is waarop je je originele uitnodiging hebt gekregen. Anders weten we niet zeker dat jij het bent! 2. Maak een uniek wachtwoord voor %{site_name} aan binnen [je gebruikersprofiel][prefs], en log daarmee in. @@ -1262,7 +1260,7 @@ nl: unsubscribe_link: "Mocht je deze e-mails niet langer willen ontvangen, bezoek dan [je gebruikersinstellingen](%{user_preferences_url})." user_notifications: - unsubscribe: + unsubscribe: title: "Uitschrijven" description: "Niet geïnteresseerd in deze e-mails? Geen problem! Klik hieronder om direct uitgeschreven te worden:" @@ -1281,7 +1279,7 @@ nl: --- %{message} - --- + --- Bezoek deze link om te reageren: %{base_url}%{url} user_quoted: @@ -1292,7 +1290,7 @@ nl: --- %{message} - --- + --- Bezoek deze link om te reageren: %{base_url}%{url} user_mentioned: @@ -1303,7 +1301,7 @@ nl: --- %{message} - --- + --- Bezoek deze link om te reageren: %{base_url}%{url} @@ -1329,9 +1327,9 @@ nl: subject_template: "[%{site_name}] Wachtwoord herstellen" text_body_template: | Iemand heeft aangegeven je wachtwoord te willen herstellen op [%{site_name}](%{base_url}). - - Ben jij dit niet, kan je zonder problemen deze e-mail negeren. - + + Ben jij dit niet, kan je zonder problemen deze e-mail negeren. + Klik op de volgende link om een nieuw wachtwoord te kiezen: %{base_url}/users/password-reset/%{email_token} @@ -1339,14 +1337,14 @@ nl: subject_template: "[%{site_name}] Bevestig je nieuwe e-mailadres" text_body_template: | Bevestig je nieuwe e-mailadres voor %{site_name} door op de volgende link te klikken: - + %{base_url}/users/authorize-email/%{email_token} signup: subject_template: "[%{site_name}] Activeer je nieuwe account" text_body_template: | Welkom op %{site_name}! - + Klik op de volgende link om je nieuwe account te bevestigen en te activeren: %{base_url}/users/activate-account/%{email_token} diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 9c24333242f..9ec175f254f 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -260,7 +260,6 @@ en: company_full_name: "The full name of the company that runs this site, used in legal documents like the /tos" company_short_name: "The short name of the company that runs this site, used in legal documents like the /tos" company_domain: "The domain name owned by the company that runs this site, used in legal documents like the /tos" - restrict_access: "Restrict forum access unless a password is entered" access_password: "When restricted access is enabled, this password must be entered" queue_jobs: "Queue various jobs in sidekiq, if false queues are inline" crawl_images: "Enable retrieving images from third party sources to insert width and height dimensions" @@ -270,7 +269,6 @@ en: imgur_endpoint: "End point for uploading imgur.com images" max_image_width: "Maximum allowed width of images in a post" category_featured_topics: "Number of topics displayed per category in the /categories page" - popup_delay: "Milliseconds of hover time before popups appear on the screen" add_rel_nofollow_to_user_content: "Add rel nofollow to all submitted user content, except for internal links (including parent domains) changing this requires you update all your baked markdown" exclude_rel_nofollow_domains: "A comma delimited list of domains where nofollow is not added (tld.com will automatically allow sub.tld.com as well)" diff --git a/config/locales/server.fr.yml b/config/locales/server.fr.yml index c7258e5b51f..70b3b1f4f01 100644 --- a/config/locales/server.fr.yml +++ b/config/locales/server.fr.yml @@ -245,7 +245,6 @@ fr: discourse_org_access_key: "La clé d'accès utilisée pour le registre de pseudos de discourse.org" educate_until_posts: "Afficher les aides à la saisie tant que l'utilisateur n'a pas posté ce nombre de messages" title: "titre de ce site internet" - restrict_access: "restreindre l'acces au forum à ceux qui possèdent ce mot de passe" access_password: "Si l'accès restreint est activé, assurez-vous que le mot de passe soit saisi ici." queue_jobs: "mettre les différents jobs en attente sur différentes queues, si false les queues sont en file" crawl_images: "permettre la récupération des images provenant de sources tierces" @@ -255,7 +254,6 @@ fr: imgur_endpoint: "point d'arrêt pour le chargement d'images sur imgur.com" max_image_width: "largeur maximale des images d'un message" category_featured_topics: "nombre de discussions affichées dans la liste par catégories" - popup_delay: "Laps de temps en ms avant l'affichage des popups à l'écran" add_rel_nofollow_to_user_content: "Ajouter rel nofollow à tous les contenus des utilisateurs, sauf les liens internes (incluant les domaines parents) Modifier ceci requiert une mise à jour de tout votre markdown" exclude_rel_nofollow_domains: "Une liste séparée par des virgules contenant les noms de domaines de premier niveau pour lesquels il faut ajouter un attribut nofollow (exemple.com va automatiquement fonctionner aussi avec sous.domaine.exemple.com)" post_excerpt_maxlength: "Longueur maximale d'un extrait de message." diff --git a/config/locales/server.nl.yml b/config/locales/server.nl.yml index 7955a864c98..d883b7af9dd 100644 --- a/config/locales/server.nl.yml +++ b/config/locales/server.nl.yml @@ -239,7 +239,6 @@ nl: discourse_org_access_key: "De toegangscode voor het discourse.org nickname-register" title: "titel van deze website" - restrict_access: "beperk forumtoegang aan gebruikers tenzij dit wachtwoord door hen is ingevuld" access_password: "restrict_access (Beperk Toegang) staat aan. Zorg ervoor dat dit wachtwoord staat ingevuld" queue_jobs: "zet verschillende taken in een queue binnen sidekiq, als ongeldige queues zich op dezelfde lijn bevinden" crawl_images: "zet het ophalen van afbeeldingen van externe bronnen aan" @@ -249,7 +248,6 @@ nl: imgur_endpoint: "endpoint voor het uploaden van imgur.com-afbeeldingen" max_image_width: "maximale breedte voor een afbeelding in een post" category_featured_topics: "aantal topics die worden weergegeven in de categorie-lijst" - popup_delay: "Lengte van tijd in ms voordat popups zich tonen op het scherm" add_rel_nofollow_to_user_content: "Voeg 'rel nofollow' toe aan alle gebruikers-content behalve voor interne links (inclusief parent domeinen). NB: Als je dit verandert moet je ook alle 'baked markdown' updaten" exclude_rel_nofollow_domains: "Een commagescheiden lijst van domeinen waar 'nofollow' niet is toegevoegd. (voorbeelddomein.com zal automatisch sub.voorbeelddomein.com toestaan)" post_excerpt_maxlength: "Maximale lengte in karakters van een post-uittreksel." diff --git a/config/locales/server.pseudo.yml b/config/locales/server.pseudo.yml index 1ef82cbac15..5e4795d2d7e 100644 --- a/config/locales/server.pseudo.yml +++ b/config/locales/server.pseudo.yml @@ -254,7 +254,6 @@ pseudo: íɳ łéǧáł ďóčůɱéɳťš łíǩé ťĥé /ťóš ]]' company_domain: ! '[[ Ťĥé ďóɱáíɳ ɳáɱé óŵɳéď ƀý ťĥé čóɱƿáɳý ťĥáť řůɳš ťĥíš šíťé, ůšéď íɳ łéǧáł ďóčůɱéɳťš łíǩé ťĥé /ťóš ]]' - restrict_access: ! '[[ Řéšťříčť ƒóřůɱ áččéšš ůɳłéšš á ƿáššŵóřď íš éɳťéřéď ]]' access_password: ! '[[ Ŵĥéɳ řéšťříčťéď áččéšš íš éɳáƀłéď, ťĥíš ƿáššŵóřď ɱůšť ƀé éɳťéřéď ]]' queue_jobs: ! '[[ Ƣůéůé νáříóůš ʲóƀš íɳ šíďéǩíƣ, íƒ ƒáłšé ƣůéůéš ářé íɳłíɳé ]]' @@ -270,8 +269,6 @@ pseudo: max_image_width: ! '[[ Ϻáхíɱůɱ áłłóŵéď ŵíďťĥ óƒ íɱáǧéš íɳ á ƿóšť ]]' category_featured_topics: ! '[[ Ѝůɱƀéř óƒ ťóƿíčš ďíšƿłáýéď ƿéř čáťéǧóřý íɳ ťĥé /čáťéǧóříéš ƿáǧé ]]' - popup_delay: ! '[[ Ϻíłłíšéčóɳďš óƒ ĥóνéř ťíɱé ƀéƒóřé ƿóƿůƿš áƿƿéář óɳ ťĥé ščřééɳ - ]]' add_rel_nofollow_to_user_content: ! '[[ Áďď řéł ɳóƒółłóŵ ťó áłł šůƀɱíťťéď ůšéř čóɳťéɳť, éхčéƿť ƒóř íɳťéřɳáł łíɳǩš (íɳčłůďíɳǧ ƿářéɳť ďóɱáíɳš) čĥáɳǧíɳǧ ťĥíš řéƣůířéš ýóů ůƿďáťé áłł ýóůř ƀáǩéď ɱářǩďóŵɳ ]]' diff --git a/lib/search.rb b/lib/search.rb index cf0d45b15c4..b034bfa1f0b 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -101,6 +101,7 @@ module Search return nil if term.blank? sanitized_term = PG::Connection.escape_string(term.gsub(/[:()&!]/,'')) # Instead of original term.gsub(/[^0-9a-zA-Z_ ]/, '') + # We are stripping only symbols taking place in FTS and simply sanitizing the rest. # really short terms are totally pointless @@ -117,7 +118,7 @@ module Search db_result = [] [user_query_sql, category_query_sql, topic_query_sql].each do |sql| - db_result += ActiveRecord::Base.exec_sql(sql , query: terms.join(" & "),locale: current_locale_long, limit: (Search.per_facet + 1)).to_a + db_result += ActiveRecord::Base.exec_sql(sql , query: terms.join(" & "), locale: current_locale_long, limit: (Search.per_facet + 1)).to_a end end diff --git a/lib/site_setting_extension.rb b/lib/site_setting_extension.rb index 95e87d3b40c..9b160daff22 100644 --- a/lib/site_setting_extension.rb +++ b/lib/site_setting_extension.rb @@ -51,10 +51,12 @@ module SiteSettingExtension # Retrieve all settings def all_settings @defaults.map do |s, v| + value = send(s) {setting: s, description: description(s), default: v, - value: send(s).to_s} + type: get_data_type_string(value), + value: value.to_s} end end @@ -169,6 +171,16 @@ module SiteSettingExtension protected + # We're currently in the process of refactoring our Enums. When that's + # done we should pop back and fix this to something better. + def get_data_type_string(val) + case get_data_type(val) + when Types::String then 'string' + when Types::Fixnum then 'number' + when Types::Bool then 'bool' + end + end + def get_data_type(val) return Types::Null if val.nil? diff --git a/lib/system_message.rb b/lib/system_message.rb index 2abc5ecdfe4..4829f96afe1 100644 --- a/lib/system_message.rb +++ b/lib/system_message.rb @@ -23,7 +23,7 @@ class SystemMessage params = defaults.merge(params) - if SiteSetting.restrict_access? + if SiteSetting.access_password.present? params[:site_password] = MultisiteI18n.t('system_messages.site_password', access_password: SiteSetting.access_password) end diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index cfdf944766d..56feee6437f 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -125,15 +125,14 @@ describe InvitesController do context 'access_required' do it "doesn't set a cookie for access if there is no access required" do - SiteSetting.expects(:restrict_access?).returns(false) + SiteSetting.stubs(:access_password).returns(nil) Invite.any_instance.expects(:redeem).returns(user) get :show, id: invite.invite_key cookies[:_access].should be_blank end it "sets the cookie when access is required" do - SiteSetting.expects(:restrict_access?).returns(true) - SiteSetting.expects(:access_password).returns('adventure time!') + SiteSetting.stubs(:access_password).returns('adventure time!') Invite.any_instance.expects(:redeem).returns(user) get :show, id: invite.invite_key cookies[:_access].should == 'adventure time!' diff --git a/spec/controllers/robots_txt_controller_spec.rb b/spec/controllers/robots_txt_controller_spec.rb index 9712abfef0e..d256814342b 100644 --- a/spec/controllers/robots_txt_controller_spec.rb +++ b/spec/controllers/robots_txt_controller_spec.rb @@ -18,7 +18,7 @@ describe RobotsTxtController do it "serves noindex when in private mode regardless of the configuration" do SiteSetting.stubs(:allow_index_in_robots_txt).returns(true) - SiteSetting.stubs(:restrict_access).returns(true) + SiteSetting.stubs(:access_password).returns('adventure time!') get :index response.should render_template :no_index end diff --git a/spec/javascripts/models/composer_spec.js b/spec/javascripts/models/composer_spec.js index 73224cb49e1..ec5e3a17982 100644 --- a/spec/javascripts/models/composer_spec.js +++ b/spec/javascripts/models/composer_spec.js @@ -1,3 +1,5 @@ +/*global waitsFor:true expect:true describe:true beforeEach:true it:true */ + describe("Discourse.Composer", function() { describe("replyLength", function() {