[TikiWiki-commits] [Git][tikiwiki/tiki][master] [FIX] Composed Parameters for Plugin Alias

"Baraka Kinywa \(@bkinywa24\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <689c7f04ee653_2c1e931c57669@gitlab-sidekiq-low-urgency-cpu-bound-v2-6744d78d97-kln2r.mail>

Baraka Kinywa pushed to branch master at Tiki Wiki CMS Groupware / Tiki


Commits:
576c3050 by Aksanti Bahiga at 2025-08-13T14:55:15+03:00
[FIX] Composed Parameters for Plugin Alias
---
* [FIX] Composed parameters sizing

* Removing spaces

* FIX:Composed Parameters Plugin Alias

* Removing spaces

* FIX:Composed Parameters Plugin Alias

See merge request tikiwiki/tiki!8117

- - - - -


2 changed files:

- lib/jquery_tiki/tiki-admin.js
- templates/admin/include_textarea.tpl


Changes:

=====================================
lib/jquery_tiki/tiki-admin.js
=====================================
@@ -73,21 +73,31 @@
          * General purpose param adding icons
          */
         $(".add-param", $pluginAliasAdmin).on("click", function () {
-            var $fieldset = $(this).closest("fieldset"),
-                // for composed args/params (fieldset) the template comes after the one for a new param,
+            var $fieldset = $(this).closest("fieldset");
+            // for composed args/params (fieldset) the template comes after the one for a new param,
                 // so we need closestDescendent, not :first
-                $template = $fieldset.closestDescendent(".param.d-none"),
-                $clone = $template.clone(true),
+            var $template = $fieldset.closestDescendent(".param.d-none");
+            // If no proper template found, use the first visible param as fallback
+            if ($template.length === 0) {
+                var $fallbackParam = $fieldset.find(".param").first();
+                $template = $fallbackParam;
+            }
+            var $clone = $template.clone(true),
                 index = $fieldset.find(".param:visible").length;
-                $clone
+            $clone
                 .find("input")
                 .each(function () {
-                    const name = $(this).attr("name");
+                    const $input = $(this);
+                    const name = $input.attr("name");
                     if (name && name.includes("__NEW__")) {
                         const newName = name.replace("__NEW__", index);
-                        $(this).attr("name", newName);
+                        $input.attr("name", newName);
+                    } else if (name) {
+                        // For fallback cloning, update the index in existing names
+                        const newName = name.replace(/\[(\d+)\]/, `[${index}]`);
+                        $input.attr("name", newName);
                     }
-                    $(this).val("");
+                    $input.val("");
                 });
             $clone.find(".d-none").addBack().removeClass("d-none");
             $template.parent().append($clone);
@@ -114,7 +124,7 @@
 
         $($pluginAliasAdmin).on("click", ".delete-param", function (e) {
             e.preventDefault();
-            $(this).popover("hide").parents(".param").remove();
+            $(this).popover("hide").closest(".param").remove();
         });
 
         setTimeout(function () {


=====================================
templates/admin/include_textarea.tpl
=====================================
@@ -543,7 +543,7 @@
                                                 {tr}Parameter{/tr}
                                             </label>
                                             <div class="col-sm-5">
-                                                <input class="form-control" type="text" name="bodyparam[{$token|escape}][token]" id="bodyparam[{$token|escape}][token]" value="{if $token neq '__NEW__'}{$token|escape}{/if}">
+                                                <input class="form-control {if $token eq '__NEW__'} d-none{/if}" type="text" name="bodyparam[{$token|escape}][token]" id="bodyparam[{$token|escape}][token]" value="{if $token neq '__NEW__'}{$token|escape}{/if}">
                                             </div>
                                             <div class="col-sm-1">
                                                 {icon name='delete' class='text-danger delete-param tips btn btn-link' title="{tr}Delete this body parameter{/tr}"}
@@ -554,7 +554,7 @@
                                                 {tr}Encoding{/tr}
                                             </label>
                                             <div class="col-sm-6">
-                                                <select class="form-select" name="bodyparam[{$token|escape}][encoding]" id="bodyparam[{$token|escape}][encoding]">
+                                                <select class="form-select {if $token eq '__NEW__'} d-none{/if}" name="bodyparam[{$token|escape}][encoding]" id="bodyparam[{$token|escape}][encoding]">
                                                     {foreach ['none','html','url'] as $val}
                                                         <option value="{$val|escape}" {if $detail.encoding eq $val}selected="selected"{/if}>
                                                             {$val|escape}
@@ -568,7 +568,7 @@
                                                 {tr}Argument source (if different){/tr}
                                             </label>
                                             <div class="col-sm-6">
-                                                <input class="form-control" type="text" name="bodyparam[{$token|escape}][input]" id="bodyparam[{$token|escape}][input]" value="{$detail.input|escape}">
+                                                <input class="form-control {if $token eq '__NEW__'} d-none{/if}" type="text" name="bodyparam[{$token|escape}][input]" id="bodyparam[{$token|escape}][input]" value="{$detail.input|escape}">
                                             </div>
                                         </div>
                                         <div class="mb-3 row">
@@ -576,7 +576,7 @@
                                                 {tr}Default value{/tr}
                                             </label>
                                             <div class="col-sm-6">
-                                                <input class="form-control" type="text" name="bodyparam[{$token|escape}][default]" id="bodyparam[{$token|escape}][default]" value="{$detail.default|escape}">
+                                                <input class="form-control {if $token eq '__NEW__'} d-none{/if}" type="text" name="bodyparam[{$token|escape}][default]" id="bodyparam[{$token|escape}][default]" value="{$detail.default|escape}">
                                             </div>
                                         </div>
                                         <hr>
@@ -600,7 +600,7 @@
                                             {tr}Parameter{/tr}
                                         </label>
                                         <div class="col-sm-7">
-                                            <input class="form-control" type="text" name="cparams[{$token|escape}][token]" id="cparams[{$token|escape}][token]" value="{if $token neq '__NEW__'}{$token|escape}{/if}">
+                                            <input class="form-control {if $token eq '__NEW__'} d-none{/if}" type="text" name="cparams[{$token|escape}][token]" id="cparams[{$token|escape}][token]" value="{if $token neq '__NEW__'}{$token|escape}{/if}">
                                         </div>
                                         <div class="col-sm-1">
                                             {icon name='delete' class='text-danger delete-param tips btn btn-link' title="{tr}Delete this composed argument{/tr}"}
@@ -611,32 +611,32 @@
                                             {tr}Pattern{/tr}
                                         </label>
                                         <div class="col-sm-8">
-                                            <input class="form-control" type="text" name="cparams[{$token|escape}][pattern]" id="cparams[{$token|escape}][pattern]" value="{$detail.pattern|escape}">
+                                            <input class="form-control {if $token eq '__NEW__'} d-none{/if}" type="text" name="cparams[{$token|escape}][pattern]" id="cparams[{$token|escape}][pattern]" value="{$detail.pattern|escape}">
                                         </div>
                                     </div>
-                                    <fieldset class="ms-5">
+                                    <fieldset class="ms-3 p-1">
                                         <legend class="h4">
                                             {tr}Composed parameters{/tr} {icon name="add" class='add-param text-success tips' title='|{tr}Add composed parameter{/tr}'}
                                         </legend>
                                         {foreach $detail.params as $t => $d}
                                             <div class="clearfix param{if $t eq '__NEW__'} d-none{/if}">
                                                 <div class="mb-3 row">
-                                                    <label class="col-form-label col-sm-6" for="cparams[{$token|escape}][params][{$t|escape}][token]">
+                                                    <label class="col-form-label col-sm-4" for="cparams[{$token|escape}][params][{$t|escape}][token]">
                                                         {tr}Parameter{/tr}
                                                     </label>
-                                                    <div class="col-sm-5">
-                                                        <input class="form-control" type="text" name="cparams[{$token|escape}][params][{$t|escape}][token]" id="cparams[{$token|escape}][params][{$t|escape}][token]" value="{if $t neq '__NEW__'}{$t|escape}{/if}">
+                                                    <div class="col-sm-7">
+                                                        <input class="form-control {if $t eq '__NEW__'} d-none{/if}" type="text" name="cparams[{$token|escape}][params][{$t|escape}][token]" id="cparams[{$token|escape}][params][{$t|escape}][token]" value="{if $t neq '__NEW__'}{$t|escape}{/if}">
                                                     </div>
                                                     <div class="col-sm-1">
                                                         {icon name='delete' class='text-danger delete-param tips btn btn-link' title="{tr}Delete this composed parameter{/tr}"}
                                                     </div>
                                                 </div>
                                                 <div class="mb-3 row">
-                                                    <label class="col-form-label col-sm-6" for="cparams[{$token|escape}][pattern]">
+                                                    <label class="col-form-label col-sm-4" for="cparams[{$token|escape}][pattern]">
                                                         {tr}Encoding{/tr}
                                                     </label>
-                                                    <div class="col-sm-6">
-                                                        <select class="form-select" name="cparams[{$token|escape}][params][{$t|escape}][encoding]" id="cparams[{$token|escape}][pattern]">
+                                                    <div class="col-sm-8">
+                                                        <select class="form-select {if $t eq '__NEW__'} d-none{/if}" name="cparams[{$token|escape}][params][{$t|escape}][encoding]" id="cparams[{$token|escape}][pattern]">
                                                             {foreach ['none','html','url'] as $val}
                                                                 <option value="{$val|escape}" {if $d.encoding eq $val}selected="selected"{/if}>{$val|escape}</option>
                                                             {/foreach}
@@ -644,19 +644,19 @@
                                                     </div>
                                                 </div>
                                                 <div class="mb-3 row">
-                                                    <label class="col-form-label col-sm-6" for="cparams[{$token|escape}][params][{$t|escape}][input]">
+                                                    <label class="col-form-label col-sm-4" for="cparams[{$token|escape}][params][{$t|escape}][input]">
                                                         {tr}Argument source (if different):{/tr}
                                                     </label>
-                                                    <div class="col-sm-6">
-                                                        <input class="form-control" type="text" name="cparams[{$token|escape}][params][{$t|escape}][input]" id="cparams[{$token|escape}][params][{$t|escape}][input]" value="{$d.input|escape}"/>
+                                                    <div class="col-sm-8">
+                                                        <input class="form-control {if $t eq '__NEW__'} d-none{/if}" type="text" name="cparams[{$token|escape}][params][{$t|escape}][input]" id="cparams[{$token|escape}][params][{$t|escape}][input]" value="{$d.input|escape}"/>
                                                     </div>
                                                 </div>
                                                 <div class="mb-3 row">
-                                                    <label class="col-form-label col-sm-6" for="cparams[{$token|escape}][params][{$t|escape}][input]">
+                                                    <label class="col-form-label col-sm-4" for="cparams[{$token|escape}][params][{$t|escape}][input]">
                                                         {tr}Default value{/tr}
                                                     </label>
-                                                    <div class="col-sm-6">
-                                                        <input class="form-control" type="text" name="cparams[{$token|escape}][params][{$t|escape}][default]" id="cparams[{$token|escape}][params][{$t|escape}][input]" value="{$d.default|escape}"/>
+                                                    <div class="col-sm-8">
+                                                        <input class="form-control {if $t eq '__NEW__'} d-none{/if}" type="text" name="cparams[{$token|escape}][params][{$t|escape}][default]" id="cparams[{$token|escape}][params][{$t|escape}][input]" value="{$d.default|escape}"/>
                                                     </div>
                                                 </div>
                                                 <hr>



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/576c30505b9ac14d78721a3b53ae71199cd39b44

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/576c30505b9ac14d78721a3b53ae71199cd39b44
You're receiving this email because of your account on gitlab.com.

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.