PageSourceSearch

https://zoomdici.fr/modules/custom/zoom_newsletter/assets/register-unregister-newsletter.js?v=1.0.0

js zoomdici.fr collected 2026-10-02 07:42:11 UTC 6,098 bytes, 169 lines download raw bytes

1(function (Drupal, $, once) {
2  Drupal.behaviors.Account__content = {
3    attach: function (context, settings) {
4      const elements = once('subscribe_newsletter', '[class~="custom_slider_ajax"]', context);
5
6      $(elements).on("click", function (e) {
7        var label = $(e.target).closest("label");
8        var id_liste = $(label)
9          .find('input[type="checkbox"]')
10          .attr("data-list");
11        var email = $('input[name="user_email"], [name="mail"]').val();
12        let isSubscription = $(label).find('input[type="checkbox"]').is(":checked") ? false : true;
13        let url = "/api/subscription_newsletter/" + id_liste;
14
15        // on envoie la requete
16        var settings = {
17          async: true,
18          url: url,
19          method: "POST",
20          headers: {
21            Accept: "application/json",
22            "Content-Type": "application/json",
23          },
24          processData: false,
25          data: JSON.stringify({
26            email: email,
27            isSubscription: isSubscription
28          }),
29        };
30
31        $.ajax(settings).done(function (response) {
32          let switch_element = $(e.target);
33
34          $(switch_element)
35            .closest(".news_type")
36            .find(".more-ot-alert .alert-texte")
37            .html(response.text);
38
39          $(switch_element)
40            .closest(".news_type")
41            .find(".more-ot-alert")
42            .fadeIn("fast");
43
44          setTimeout(function () {
45            closeAlert(switch_element);
46          }, 2000);
47
48          if (true === response.success) {
49            var settingsNewsletterCheck = {
50              async: true,
51              url: "/api/remove_field_newsletter/" + email,
52              method: "GET",
53            };
54            $.ajax(settingsNewsletterCheck).done(function (response) { });
55          }
56        });
57      });
58
59      $(".close-ot-alert").on("click", function (e) {
60        closeAlert($(e.target));
61      });
62
63      $("#newsletter-subscribe")
64        .find("input#edit-email")
65        .on("keyup ", function (event) {
66          var value = $(this).val();
67          var message = $(
68            '<span class="flk_description" style="color:red;display:none;">Vous êtes déjà inscrit à la newsletter l`\'Hebdo. Gérez votre abonnement en cliquant <a href="/user/0/newsletter?user_email=' +
69              value +
70              '" style="text-decoration:underline;"> ici </a></span>'
71          );
72          if (
73            $("#newsletter-subscribe .form-item-email span.flk_description")
74              .length === 0
75          ) {
76            $("#newsletter-subscribe .form-item-email").append(message);
77          }
78          if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value)) {
79            // on prépare l'envoie en vérifiant si l'email est valide
80            setTimeout(function () {
81              // on envoie la requete pour savoir si l'utilisateur existe
82              var url = "/api/if_field_newsletter_active/" + value;
83              var settings = {
84                url: url,
85                method: "GET",
86                headers: {
87                  "Content-Type": "application/json",
88                },
89              };
90              $.ajax(settings).done(function (response) {
91                if (response.data.active) {
92                  // si le compte existe
93                  $(
94                    "#newsletter-subscribe .form-item-email span.flk_description"
95                  ).show();
96                  $("#newsletter-subscribe .form-item-email input").css({
97                    "border-color": "red",
98                    "border-width": "2px",
99                  });
100
101                  // desactiver l'input submit
102                  $("#newsletter-subscribe .form-actions input").attr(
103                    "disabled",
104                    true
105                  );
106                  var link = "/user/0/newsletter?user_email=" + value;
107                  $(
108                    "#newsletter-subscribe .form-item-email span.flk_description a"
109                  ).attr("href", link);
110                } else {
111                  $(
112                    "#newsletter-subscribe .form-item-email span.flk_description"
113                  ).hide();
114                  $("#newsletter-subscribe .form-item-email input").attr(
115                    "style",
116                    ""
117                  );
118
119                  // activer l'input submit
120                  $("#newsletter-subscribe .form-actions input").attr(
121                    "disabled",
122                    false
123                  );
124                }
125                console.log(response.data.has_account, response.data);
126              });
127            }, 1000);
128          }
129        });
130
131      $("#edit-field-telephone-0-value").attr("maxlength", 10);
132      var message = $(
133        '<span class="flk_description" style="color:red;display:none;">Veuillez utiliser un numéro de téléphone valide</span>'
134      );
135      if (
136        $("#edit-field-telephone-wrapper span.flk_description").length === 0
137      ) {
138        $("#edit-field-telephone-wrapper").append(message);
139      }
140      $("#edit-field-telephone-0-value").on("change", function (e) {
141        console.clear();
142        var input = $(e.target);
143        var phone_lenght = $(e.target).val().length;
144        if (phone_lenght >= 8 && phone_lenght < 10) {
145          $("#edit-field-telephone-wrapper span.flk_description").show();
146          $(input).css({
147            "border-color": "red",
148            "border-width": "2px",
149          });
150          $("#edit-submit").attr("disable", true);
151        } else {
152          $("#edit-field-telephone-wrapper span.flk_description").hide();
153          $(input).attr("style", "");
154          $("#edit-submit").attr("disable", false);
155        }
156        console.log($(e.target), $(e.target).val(), $(e.target).val().length);
157      });
158
159      function closeAlert(element) {
160        setTimeout(function () {
161          $(element)
162            .closest(".news_type")
163            .find(".more-ot-alert")
164            .fadeOut("fast");
165        }, 100);
166      }
167    },
168  };
169})(Drupal, jQuery, once);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.