You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
6.2 KiB
1 lines
6.2 KiB
var EXPO=EXPO||{};EXPO.profile?console.warn("WARNING: EXPO.profile is already defined!"):EXPO.profile=function(){function t(){}var e={};return e.settings={updateFormClass:"update-profile-form"},e.lang={},t.prototype={getajax:function(t){var e=this;t||(t=""),$.ajax({type:"POST",url:e.ajaxPath,data:t,processData:!1,contentType:!1,success:function(t){e.pullHandler(t),$("#wait-ajax").fadeOut()}})},pushData:function(t,e){var a=this.pushHandler,i=t;this.formData="string"!=typeof i?i:JSON.parse('{"'+decodeURI(i).replace(/"/g,'\\"').replace(/&/g,'","').replace(/=/g,'":"')+'"}'),this.formId=e,"function"==typeof a?(a(t),$("#wait-ajax").show()):(this.getajax(t),$("#wait-ajax").show()),console.log("formData type"),console.log(typeof i)},pullData:function(t){var e=this.pullHandler;if("function"!=typeof e)throw{name:"Error",message:" handler function for processing response after form submit not defined, please define it!"};e(t)},fulfillInputs:function(){var t=this;for(input in t.formData)$("#id_"+input,$("#"+t.formId)).length>0&&$("#id_"+input,$("#"+t.formId)).value(t.formData[input]),$("#static-"+input).length>0&&$("#static-"+input).html}},t.factory=function(e,a){var i,n=e;if("function"!=typeof t[n])throw{name:"Error",message:n+"doesen't exist"};return"function"!=typeof t[n].prototype.pushData&&(t[n].prototype=new t),i=new t[n](a)},t.home_form=function(t){this.pullHandler=function(t){if(t.success){var e=$("#s2id_id_country").find(".select2-chosen").text(),a=$("#s2id_id_city").find(".select2-chosen").text();$("#static-home-country").text(e),$("#static-home-city").text(a),$(".p-editable").removeClass("pe-current")}},this.ajaxPath=t},t.name_form=function(t){this.pullHandler=function(t){t.success&&($("#static-name-value").text($("#id_last_name").val()+" "+$("#id_first_name").val()),$(".p-editable").removeClass("pe-current"))},this.ajaxPath=t},t.work_form=function(t){this.pullHandler=function(t){if(t.success){var e=$("#s2id_id_company").find(".select2-chosen").text();$("#static-work-value").html($("#id_position").val()+" "+EXPO.profile.lang.workIn+' <a href="'+t.url+'">"'+e+'"</a>'),$(".p-editable").removeClass("pe-current")}},this.ajaxPath=t},t.about_company_form=function(t){this.pullHandler=function(t){t.success&&window.location.reload()},this.ajaxPath=t},t.social_form=function(t){this.pullHandler=function(t){t.success&&window.location.reload()},this.ajaxPath=t},t.phone_form=function(t){this.pullHandler=function(t){t.success&&($("#static-phone-value").text($("#id_phone")[0].value),$(".p-editable").removeClass("pe-current"))},this.ajaxPath=t},t.web_page_form=function(t){this.pullHandler=function(t){if(t.success){var e=$("#id_web_page").val();$("#static-web-page-value").attr("href",e).text(e),$(".p-editable").removeClass("pe-current")}},this.ajaxPath=t},t.about_form=function(t){this.pullHandler=function(t){t.success&&($("#static-about-value").text($("#id_about").val()),$(".p-editable").removeClass("pe-current"))},$("#id_about").on("keypress",function(t){var e=t.keyCode?t.keyCode:t.which;return"13"==e?!1:void 0}),this.ajaxPath=t},t.social_form=function(t){var e,a,i,n,s=this;this.pullHandler=function(t){if(t.success){for(item in s.formData)i=$("#id_"+item),""!=$.trim(s.formData[item])&&i.length?(e=$("#img-"+item),e.length&&(n=$.trim(i.val()),e.parent("a").length?(e.parent("a").attr("href",n),a=e.attr("src").replace("_hover",""),e.attr("src",a)):(a=e.attr("src").replace("_hover",""),e.attr("src",a),e.wrap('<a href="'+n+'" target="_blank"></a>')))):i.length&&(e=$("#img-"+item),e.parent("a").length&&(a=e.attr("src").replace(".png","_hover.png"),e.attr("src",a),e.unwrap()));$(".p-editable").removeClass("pe-current")}},this.ajaxPath=t},t.avatar_form=function(t){var e,a=this,i=$("#id_avatar"),n=$("#pic-edit-photo"),s=$("#pick-block"),r=$(".pic_block img");this.pullHandler=function(t){t.success&&(r.length?r.attr("src",t.url):(s.removeClass("add_pic_block").addClass("pic_block"),$(".add-wrapper",s).remove(),$("<img/>").attr("src",t.url).prependTo(s)),$(".p-editable").removeClass("pe-current"))},this.pushHandler=function(t){"string"!=typeof t?(a.getajax(t),$("#wait-ajax").show()):(e=$("#"+a.formId),e.off("submit"),e.trigger("submit"))},i.on("change",function(){$(this).parents("form").submit()}),n.on("click",function(){i.trigger("click")}),this.ajaxPath=t},$(function(){}),e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.settings,e);var a=this,i=function(t){var e=$.masksSort($.masksLoad("/static/client/js/plugins/inputmask/phone-codes.json"),["#"],/[0-9]|#/,"mask"),a={inputmask:{definitions:{"#":{validator:"[0-9]",cardinality:1}},showMaskOnHover:!1,autoUnmask:!0},match:/[0-9]/,replace:"#",list:e,listKey:"mask",onMaskChange:function(){$(this).attr("placeholder",$(this).inputmask("getemptymask"))}},i="#"+t;$(i).attr("placeholder","+_(___)___-__-__"),$(i).inputmasks(a)};this.forms={},$(function(){$("#"+a.settings.selectBox[0].id).select2({width:"element"}),$("#"+a.settings.selectBox[1].id).select2({width:"element",placeholder:a.settings.selectBox[1].placeholder,maximumSelectionSize:3}),$("#"+a.settings.selectBox[2].id).select2({placeholder:a.settings.selectBox[2].placeholder,width:"element",ajax:{url:a.settings.selectBox[2].path,dataType:"json",quietMillis:200,data:function(t,e,i){var i=$("#"+a.settings.selectBox[0].id).val();return{term:t,page:e,country:i}},results:function(t){var e=[];return $.each(t,function(t,a){e.push({id:a.id,text:a.label})}),{results:e}}},initSelection:function(t,e){var a=$(t).val(),i=$(t).attr("data-init-text");e({id:a,text:i})}}),$("#"+a.settings.selectBox[3].id).select2({placeholder:a.settings.selectBox[3].placeholder,width:"200px",minimumInputLength:1,ajax:{url:a.settings.selectBox[3].path,dataType:"json",quietMillis:200,data:function(t,e){return{term:t,page:e}},results:function(t){var e=[];return $.each(t,function(t,a){e.push({id:a.id,text:a.label})}),{results:e}}},initSelection:function(t,e){var a=$(t).val(),i=$(t).attr("data-init-text");e({id:a,text:i})}}),i(a.settings.phoneBox),$("."+a.settings.updateFormClass).each(function(){var e,i=$(this).attr("id"),n=$(this).attr("action");a.forms[i]=t.factory(i,n),$(this).off("submit"),$(this).on("submit",function(){return window.FormData&&"upload"in $.ajaxSettings.xhr()?(e=new FormData(this),a.forms[i].pushData(e,i)):(e=$(this).serialize(),a.forms[i].pushData(e,i)),!1})})})},e}(); |