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
8.4 KiB

var EXPO=EXPO||{};EXPO.company?console.warn("WARNING: EXPO.company is already defined!"):EXPO.company=function(){function t(){}var e={};e.opt={updateFormClass:"update-profile-form"},e.lang={};var a;return 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,s=t;this.formData="string"!=typeof s?s:JSON.parse('{"'+decodeURI(s).replace(/"/g,'\\"').replace(/&/g,'","').replace(/=/g,'":"')+'"}'),this.formId=e,"function"==typeof a?(this.formData=a(t,e),this.getajax(t),$("#wait-ajax").show()):(this.getajax(t),$("#wait-ajax").show())},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)},refreshState:function(){""==$.trim(this.$staticValue.text())&&this.$wrapper.length&&this.refrashable?(this.$editable.addClass("hidden"),this.$description.removeClass("hidden")):this.$wrapper.length&&this.refrashable&&(this.$editable.removeClass("hidden"),this.$description.addClass("hidden"))}},t.factory=function(e,a){var s,r=e;if("function"!=typeof t[r])throw{name:"Error",message:r+"doesen't exist"};return"function"!=typeof t[r].prototype.pushData&&(t[r].prototype=new t),s=new t[r](a)},t.name_form=function(t){this.pullHandler=function(t){t.success?($("#static-name-value").text($("#id_name").val()),$(".p-editable").removeClass("pe-current"),this.refreshState()):this.$editable.addClass("err")},this.ajaxPath=t},t.spec_form=function(t){this.pullHandler=function(t){t.success?($("#static-spec-value").text($("#id_specialization").val()),$(".p-editable").removeClass("pe-current"),this.refreshState()):this.$editable.addClass("err")},this.ajaxPath=t},t.address_form=function(t){this.pullHandler=function(t){t.success?($("#static-address-value").text($("#id_address_inf").val()),$(".p-editable").removeClass("pe-current"),this.refreshState()):this.$editable.addClass("err")},this.ajaxPath=t},t.social_form=function(t){var e,a,s,r,i,n=this;this.pullHandler=function(t){if(t.success){for(i in n.formData)s=$("#id_"+i),s.parent(".required").removeClass("err"),""!=$.trim(n.formData[i])&&s.length?(e=$("#img-"+i),e.length&&(r=$.trim(s.val()),e.parent("a").length?(e.parent("a").attr("href",r),a=e.attr("src").replace("_hover",""),e.attr("src",a)):(a=e.attr("src").replace("_hover",""),e.attr("src",a),e.wrap('<a href="'+r+'" target="_blank"></a>')))):s.length&&(e=$("#img-"+i),e.parent("a").length&&(a=e.attr("src").replace(".png","_hover.png"),e.attr("src",a),e.unwrap()));$(".p-editable").removeClass("pe-current")}else for(i in t.errors)s=$("#id_"+i),s.parent(".required").addClass("err")},this.pushHandler=function(t,e){var a=$("#"+e).serialize();return JSON.parse('{"'+decodeURI(a).replace(/"/g,'\\"').replace(/&/g,'","').replace(/=/g,'":"')+'"}')},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.refreshState())},this.ajaxPath=t},t.email_form=function(t){var e;this.pullHandler=function(t){t.success?(e=$("#id_email").val(),$("#static-email-value").attr("href","mailto:"+e).text(e),$(".p-editable").removeClass("pe-current"),this.refreshState()):this.$editable.addClass("err")},this.ajaxPath=t},t.web_page_form=function(t){var e;this.pullHandler=function(t){t.success&&(e=$("#id_web_page").val(),$("#static-web-page-value").attr("href",e).text(e),$(".p-editable").removeClass("pe-current"),this.refreshState())},this.ajaxPath=t},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.refreshState()}},this.ajaxPath=t},t.found_form=function(t){var e,a;this.pullHandler=function(t){t.success&&(a=$("#id_foundation"),e=$.trim(a.val()),this.$staticValue.text(e),$(".p-editable").removeClass("pe-current"),this.refreshState())},this.ajaxPath=t},t.staff_form=function(t){var e,a;this.pullHandler=function(t){t.success&&(a=$("#id_staff_number"),e=$.trim(a.val()),this.$staticValue.text(e),$(".p-editable").removeClass("pe-current"),this.refreshState())},this.ajaxPath=t},t.description_form=function(t){var e,a=$("#id_description");this.pullHandler=function(t){t.success&&(e=$.trim(a.val()),this.$staticValue.text(e),$(".p-editable").removeClass("pe-current"),this.refreshState())},a.on("keypress",function(t){var e=t.keyCode?t.keyCode:t.which;return"13"==e?!1:void 0}),this.ajaxPath=t},t.avatar_form=function(t){var e,a=this,s=$("#id_avatar"),r=($("#pic-edit-photo"),$("#pick-block")),i=$("img",r);this.pullHandler=function(t){t.success&&(i.length&&i.attr("src",t.url),$(".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"))},s.on("change",function(){$(this).parents("form").submit()}),this.ajaxPath=t,this.refreshState=function(){$.trim(this.$image.attr("src"))==this.noImageSrc?(this.$editable.addClass("hidden"),this.$description.removeClass("hidden")):(this.$editable.removeClass("hidden"),this.$description.addClass("hidden"))}},e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.opt,e);var s=this,r=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","+_(___)___-__-__")}},s="#"+t;$(s).inputmasks(a)};this.forms={},$(function(){var e=$("."+s.opt.editableClass);a=$("#wait-ajax").css({"z-index":"8012"}),$("#"+s.opt.selectBox[0].id).select2({width:"element"}),$("#"+s.opt.selectBox[1].id).select2({placeholder:s.opt.selectBox[1].placeHolder,width:"element",ajax:{url:s.opt.selectBox[1].path,dataType:"json",quietMillis:200,data:function(t,e,a){var a=$("#"+s.opt.selectBox[0].id).val();return{term:t,page:e,country:a}},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(),s=$(t).attr("data-init-text");e({id:a,text:s})}}),$("#"+s.opt.selectBox[2].id).attr("data-predifined",'[{"id":"1128","text":"тег1"},{"id":"3365","text":"тег2"}]'),$("#"+s.opt.selectBox[2].id).select2({placeholder:s.opt.selectBox[2].placeholder,width:"368px",multiple:!0,maximumSelectionSize:5,ajax:{url:s.opt.selectBox[2].path,dataType:"json",quietMillis:200,data:function(t,e){var a=$("#theme-inf").attr("data-theme");return a=a.split(","),a.pop(),{term:t,page:e,themes:a}},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){console.log(t);var a=JSON.parse(t.attr("data-predifined"));e(a)}}),r(s.opt.phoneBox),$("."+s.opt.updateFormClass).each(function(){var r,i=$(this).attr("id"),n=$(this).attr("action"),o=$(this).closest("."+s.opt.formWrapperClass),l=$("."+s.opt.staticValueClass,o),c=$("."+s.opt.descriptionClass,o),h=$("."+s.opt.editableClass,o),d=$("."+s.opt.closeButtonClass,o),u=$("."+s.opt.avatarImageClass,o);s.forms[i]=t.factory(i,n),s.forms[i].refrashable=$("."+s.opt.editButtonClass,o).hasClass("no-refresh")?!1:!0,s.forms[i].$form=$(this),s.forms[i].$wrapper=o,s.forms[i].$staticValue=l,s.forms[i].$description=c,s.forms[i].$editable=h,u.length&&(s.forms[i].$image=u,s.forms[i].noImageSrc=s.opt.noImageSrc),s.forms[i].refreshState(),$(this).off("submit"),$(this).on("submit",function(){return a.show(),window.FormData&&"upload"in $.ajaxSettings.xhr()?(r=new FormData(this),s.forms[i].pushData(r,i)):(r=$(this).serialize(),s.forms[i].pushData(r,i)),!1}),d.on("click",function(){return h.removeClass(s.opt.formCurrentClass),s.forms[i].refreshState(),!1}),$("."+s.opt.editButtonClass+", ."+s.opt.avatarButtonClass,o).on("click",function(){return e.removeClass(s.opt.formCurrentClass),s.forms[i].refrashable&&(h.removeClass("hidden"),c.addClass("hidden")),h.each(function(){$(this).removeClass(s.opt.formCurrentClass)}),h.toggleClass(s.opt.formCurrentClass),$(document).on("click.form",function(t){var e=$(t.target);e.parents().filter(".e-form").length<1&&(h.removeClass(s.opt.formCurrentClass),s.forms[i].refreshState(),$(document).off("click.form"))}),!1})})})},e}();