PageSourceSearch

https://socialpubli.com/js/user/user-industries-form.js?v=1560946746

js socialpubli.com collected 2026-10-01 10:18:05 UTC 6,540 bytes, 158 lines download raw bytes

1var sp = sp || {};
2(function ($, sp) {
3
4//    var industriesLimit = null;
5
6    // INDUSTRIES -> declaración de la functión
7    function getIndustriesLimit(user_id) {
8        var deferred = $.Deferred();
9        $.post("/industries/get_industries_limit_by_user_id", {
10            user_id: user_id
11        }).done(function (response) {
12            $("#add-account-industries").text(response.text);
13            deferred.resolve(response.limit);
14        }).fail(function () {
15            deferred.reject();
16        });
17        return deferred.promise();
18    }
19
20    // INDUSTRIES -> declaración de la función que envía los datos de intereses al controlador /users/social_media/save_industries
21    function saveIndustries(insertId, networkId) {
22        var n = sp.notify(llang('js_loading'), 'loading', 0);
23        var promise = $.Deferred();
24        var postData = {
25            gender: $("#sel_gender:visible, #blog_gender:visible").val(),
26            lang: $("#sel_lang").val(),
27            country: $("#industriesCountry").val(),
28            state: $("#industriesCity").val(),
29            industries: $("input[name='industries[]']:checked").map(function () {
30                return $(this).val();
31            }).get(),
32            insertId: insertId,
33            networkId: networkId
34        };
35
36        $.post("/users/social_media/save_industries", postData).done(function (response) {
37            if (!response.error) {
38                n.setType('success').setMessage(llang('js_success')).setTimeout(1);
39                console.log("industries saved");
40                promise.resolve();
41            } else {
42                n.setType('danger').setMessage(llang('js_' + response.message)).setTimeout(8000);
43                promise.reject();
44                console.log(response.message);
45            }
46        }).fail(function () {
47            n.setType('danger').setMessage(llang('js_error')).setTimeout(8000);
48            promise.reject();
49        });
50        return promise.promise();
51    }
52
53    // INDUSTRIES -> comprueba que los parámetro de segmentación no estén vacíos o exedan el límite
54    function checkIndustries() {
55        var gender = $("#sel_gender:visible, #blog_gender:visible").val();
56        var lang = $("#sel_lang").val();
57        var country = $("#industriesCountry").val();
58        var city = $("#industriesCity").val();
59        var industries = $("input[name='industries[]']:checked").length;
60        if (gender == "" || lang == "" || country == "" || city == "" || industries == 0) {
61            return false;
62        } else {
63            return true;
64            ;
65        }
66    }
67
68    // INDUSTRIES -> llama a las funciones checkIndustries y savaIndustries
69    function checkAndSaveIndustries(account_id, network_id, deferred) {
70        try {
71            if (!checkIndustries()) {
72                throw new exception;
73            }
74            disableButton("#industriesModalButton", true);
75            saveIndustries(account_id, network_id).done(function () {
76                deferred.resolve();
77            }).fail(function () {
78                deferred.reject();
79            }).always(function() {
80                disableButton("#industriesModalButton", false);
81            });
82
83        } catch (exception) {
84            showError($("#industriesModalMessage"), llang("js_corp_fillallfields"));
85        }
86    }
87    
88    function disableButton(button, disable) {
89        $(button).prop('disabled', disable)[disable ? 'attr' : 'removeAttr']('disabled', true)[disable ? 'addClass' : 'removeClass']('disabled');
90    }
91
92    // INDUSTRIES -> al abrir la modal obtiene el limite de industries y asigna al botón *Check & Save Industries*.
93    sp.openIndustriesModal = function (account_id, network_id) {
94        var deferred = $.Deferred();
95        var modal = $("#industriesModal");
96        var user_id = modal.data("userId");
97        var industriesLimit = 2;
98        getIndustriesLimit(user_id).done(function (limit) {
99            industriesLimit = limit;
100        });
101        if (network_id && account_id) {
102            $("#opciones").get(0).reset();
103            $("#blog_gender")[network_id == 4 ? 'removeClass' : 'addClass']("hidden");
104            $("#sel_gender")[network_id != 4 ? 'removeClass' : 'addClass']("hidden");
105            modal.modal({
106                backdrop: false,
107                keyboard: false
108            }).modal("show");
109            /* esto es para comprobar que no se seleccionen más 
109intereses de lo permitido */
110            $(modal).on("click", "input[name='industries[]']", function (event) {
111                var industriesChecked = $("input[name='industries[]']:checked", modal).length;
112                if ($(this).is(':checked') && industriesChecked > industriesLimit) {
113                    event.preventDefault();
114                    return false;
115                }
116            });
117            $(modal).off('click', "#industriesModalButton").on('click', "#industriesModalButton", function () {
118                checkAndSaveIndustries(account_id, network_id, deferred);
119            });
120        }
121        $('select.selectable-wrapped-select', modal).dropdownselector('refresh');
122        deferred.always(function() {
123            $(modal).off();
124        });
125        return deferred.promise();
126    };
127
128    function getActivatedNetworks() {
129        $.post("/users/social_media/get_activated_networks", {
130            user_id: $("#industriesModal").data("userId")
131        }).done(function (response) {
132            var network = response.networks;
133            $.each(network, function (key, value) {
134                $("ul.accounts-list a[network-id='" + value + "']").addClass("activated");
135            });
136        });
137    }
138    
139    $(getActivatedNetworks);
140    sp.openIndustriesModalPanel = function (account_id, network_id) {
141        sp.openIndustriesModal(account_id, network_id).done(function () {
142            location.href = "/users/smaccounts/add_new";
143        }).fail(function() {
144            $("#industriesModal").modal("hide");
145            setTimeout(sp.openIndustriesModalPanel.bind(sp, account_id, network_id), 1000);
146        });
147    };
148    sp.openIndustriesModalSignup = function (account_id, network_id) {
149        sp.openIndustriesModal(account_id, network_id).done(function () {
150            $("#industriesModal").modal("hide");
151            getActivatedNetworks();
152        }).fail(function() {
153            $("#industriesModal").modal("hide");
154            setTimeout(sp.openIndustriesModalSignup.bind(sp, account_id, network_id), 1000);
155        });
156    };
157
158})(jQuery, sp);

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.