Projet

Général

Profil

0001-card-cell-use-data-dynamic-attr-directly-on-fields-g.patch

Thomas Jund, 31 janvier 2022 10:22

Télécharger (7,25 ko)

Voir les différences:

Subject: [PATCH] card-cell: use data-dynamic attr directly on fields
 group/parent (#61022)

 .../wcs/manager/card-infos-cell-form.html     | 35 +++++++++++++------
 combo/manager/static/js/combo.manager.js      | 16 +++------
 2 files changed, 28 insertions(+), 23 deletions(-)
combo/apps/wcs/templates/combo/wcs/manager/card-infos-cell-form.html
48 48
        </select>
49 49
      </label>
50 50
    </p>
51

  
52
    {# fields group for "content type == @field@ " #}
53
    <div data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@field@">
51 54
      <p>
52 55
        <label>
53 56
          {% trans "Card Fields" %}
54
        <select name="field_varname" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@field@"></select>
57
          <select name="field_varname"></select>
55 58
        </label>
56 59
      </p>
57 60
      <p>
58 61
        <label>
59 62
          {% trans "Field content" %}
60
        <select name="field_content" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@field@">
63
          <select name="field_content">
61 64
            <option value="label-and-value">{% trans "Label & Value" %}</option>
62 65
            <option value="label">{% trans "Label only" %}</option>
63 66
            <option value="value">{% trans "Value only" %}</option>
......
67 70
      <p>
68 71
        <label>
69 72
          {% trans "Display mode" %}
70
        <select name="field_display_mode" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@field@">
73
          <select name="field_display_mode">
71 74
            <option value="text">{% trans "Text" %}</option>
72 75
            <option value="title">{% trans "Title" %}</option>
73 76
            <option value="subtitle">{% trans "Subtitle" %}</option>
......
77 80
      <p>
78 81
        <label>
79 82
          {% trans "Empty value display mode" %}
80
        <select name="field_empty_display_mode" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@field@">
83
          <select name="field_empty_display_mode" data-dynamic-display-parent="true">
81 84
            <option value="@empty@">{% trans "Display as empty" %}</option>
82 85
            <option value="@skip@">{% trans "Hide" %}</option>
83 86
            <option value="@custom@">{% trans "Display a custom text" %}</option>
84 87
          </select>
85 88
        </label>
86 89
      </p>
87
    <p>
90
      <p data-dynamic-display-child-of="field_empty_display_mode" data-dynamic-display-value="@custom@">
88 91
        <label>
89 92
          {% trans "Empty value custom text" %}
90
        <input name="field_empty_text" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@field@" />
93
          <input name="field_empty_text" />
91 94
        </label>
92 95
      </p>
96
    </div>
97

  
98
    {# fields group for "content type == @custom@" #}
99
    <div data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@custom@">
93 100
      <p>
94 101
        <label>
95 102
          {% trans "Value template" %}
96
        <textarea name="custom_template" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@custom@" style="resize: vertical;"></textarea>
103
          <textarea name="custom_template" style="resize: vertical;"></textarea>
97 104
        </label>
98 105
      </p>
99 106
      <p>
100 107
        <label>
101 108
          {% trans "Display mode" %}
102
        <select name="custom_display_mode" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@custom@">
109
          <select name="custom_display_mode">
103 110
            <option value="label">{% trans "Label" %}</option>
104 111
            <option value="text">{% trans "Text" %}</option>
105 112
            <option value="title">{% trans "Title" %}</option>
......
107 114
          </select>
108 115
        </label>
109 116
      </p>
117
    </div>
118

  
119
    {# fields group for "content type == @link@" #}
120
    <div data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@link@">
110 121
      <p>
111 122
        <label>
112 123
          {% trans "Label template" %}
113
        <textarea name="link_label_template" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@link@" style="resize: vertical;"></textarea>
124
          <textarea name="link_label_template" style="resize: vertical;"></textarea>
114 125
        </label>
115 126
      </p>
116 127
      <p>
117 128
        <label>
118 129
          {% trans "URL template" %}
119
        <textarea name="link_url_template" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@link@" style="resize: vertical;"></textarea>
130
          <textarea name="link_url_template" style="resize: vertical;"></textarea>
120 131
        </label>
121 132
      </p>
122 133
      <p>
123 134
        <label>
124 135
          {% trans "Display mode" %}
125
        <select name="link_display_mode" data-dynamic-display-child-of="entry_type" data-dynamic-display-value="@link@">
136
          <select name="link_display_mode">
126 137
            <option value="link">{% trans "Link" %}</option>
127 138
            <option value="button">{% trans "Button" %}</option>
128 139
          </select>
129 140
        </label>
130 141
      </p>
142
    </div>
143

  
131 144
    <p>
132 145
      <label>
133 146
        {% trans "Size" %}
combo/manager/static/js/combo.manager.js
403 403
      var sel1 = '[data-dynamic-display-child-of="' + $(this).attr('name') + '"]';
404 404
      var sel2 = '[data-dynamic-display-value="' + $(this).val() + '"]';
405 405
      var sel3 = '[data-dynamic-display-value-in*="' + $(this).val() + '"]';
406
      $(sel1).addClass('field-hidden').parent().parent().hide();
407
      $(sel1 + sel2).removeClass('field-hidden').parent().parent().show();
408
      $(sel1 + sel3).removeClass('field-hidden').parent().parent().show();
406
      $(sel1).addClass('field-hidden').hide();
407
      $(sel1 + sel2).removeClass('field-hidden').show();
408
      $(sel1 + sel3).removeClass('field-hidden').show();
409 409
      $(sel1).trigger('change');
410 410
    });
411
    $('[data-dynamic-display-child-of]').addClass('field-hidden').parent().parent().hide();
411
    $('[data-dynamic-display-child-of]').addClass('field-hidden').hide();
412 412
    $('select[data-dynamic-display-parent]').trigger('change');
413 413
    $('[data-dynamic-display-parent]:checked').trigger('change');
414 414
  }
......
519 519
        $(_self.grid_cell_form.field_display_mode).addClass('field-hidden').parent().parent().show();
520 520
      }
521 521
    });
522
    const field_empty_display_mode_select = this.grid_cell_form.field_empty_display_mode;
523
    $(field_empty_display_mode_select).on('change', function() {
524
      if ($(this).hasClass('field-hidden') || $(this).val() != '@custom@') {
525
        $(_self.grid_cell_form.field_empty_text).removeClass('field-hidden').parent().parent().hide();
526
      } else {
527
        $(_self.grid_cell_form.field_empty_text).addClass('field-hidden').parent().parent().show();
528
      }
529
    });
530 522
  },
531 523
  grid_cell__form_dialog: function(button_label, callback){
532 524
    const _self = this;
533
-