]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix UI for rich object in setupcheck results
authorCôme Chilliet <come.chilliet@nextcloud.com>
Tue, 9 Jan 2024 15:43:46 +0000 (16:43 +0100)
committerJohn Molakvoæ <skjnldsv@protonmail.com>
Mon, 15 Jan 2024 14:11:58 +0000 (15:11 +0100)
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
core/js/setupchecks.js

index 24fec85aeb3e0fede861bc7e13afb17b48b8efa1..925c6924f26f43dc8ba2e18af434a83bbb9dfa64 100644 (file)
                        return deferred.promise();
                },
 
+               /**
+               * @param message      The message string containing placeholders.
+               * @param parameters   An object with keys as placeholders and values as their replacements.
+               *
+               * @return The message with placeholders replaced by values.
+               */
+               richToParsed: function (message, parameters) {
+                       for (var [placeholder, parameter] of Object.entries(parameters)) {
+                               var replacement;
+                               if (parameter.type === 'user') {
+                                       replacement = '@' + parameter.name;
+                               } else if (parameter.type === 'file') {
+                                       replacement = parameter.path || parameter.name;
+                               } else {
+                                       replacement = parameter.name;
+                               }
+                               message = message.replace('{' + placeholder + '}', replacement);
+                       }
+
+                       return message;
+               },
+
                addGenericSetupCheck: function(data, check, messages) {
                        var setupCheck = data[check] || { pass: true, description: '', severity: 'info', linkToDoc: null}
 
                        }
 
                        var message = setupCheck.description;
+                       if (setupCheck.descriptionParameters) {
+                               message = this.richToParsed(message, setupCheck.descriptionParameters);
+                       }
                        if (setupCheck.linkToDoc) {
                                message += ' ' + t('core', 'For more details see the {linkstart}documentation ↗{linkend}.')
                                        .replace('{linkstart}', '<a target="_blank" rel="noreferrer noopener" class="external" href="' + setupCheck.linkToDoc + '">')