mirror of
https://gitverse.ru/kpa39l/yaru.nixg.ru.git
synced 2026-09-29 18:05:05 +00:00
1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
y5.require(["Classes","Events"],function(){var a=function(){};a.prototype.register=function(){var d,c,b;for(b=0;b<arguments.length;b++){d=arguments[b];c=d[3]||this.control;this[d[0]]=y5.cssQuery(d[1],c)[0]}};a.prototype.show=function(){var c,b;for(b=0;b<arguments.length;b++){c=arguments[b];if(y5.Types.string(c)){c=this[c]}y5.Classes.remove(c,"i-hidden")}};a.prototype.hide=function(){var c,b;for(b=0;b<arguments.length;b++){c=arguments[b];if(y5.Types.string(c)){c=this[c]}y5.Classes.add(c,"i-hidden")}};a.prototype.on=function(d,c,b){y5.Events.observe(d,c,b,true,this);return this};Friends.BasicControl=a;y5.loaded("{Friends}.BasicControl")});y5.require(["{Friends}.BasicControl"],function(){var a=function(c){var b=function(){if(arguments.length>0){return this.init.apply(this,arguments)}};if(c){b.prototype=new c()}return b};Friends.CommonConstructor=a;y5.loaded("{Friends}.CommonConstructor")});y5.require(["Events","{Friends}.CommonConstructor"],function(){var a=Friends.CommonConstructor(Friends.BasicControl);a.prototype.init=function(c,d){this.control=c;this.params=d;this.input=y5.cssQuery("input[placeholder]",c)[0];if(!this.input){return}this.init=true;this.input.refInputPlaceholder=this;this.placeholder=this.input.getAttribute("placeholder");this.clearinput=true;var b=this.input.getAttribute("clearinput");if(b&&b=="no"){this.clearinput=false}if(this.placeholder&&this.input.value==""){this.disable(this.placeholder)}this.on("keyup",this.inputOut,this.input);this.on("focus",this.inputEnter,this.input);this.on("blur",this.inputOut,this.input);return this};a.prototype.inputEnter=function(b){if(this.isEmpty()){this.clearInput()}};a.prototype.inputOut=function(b){if(this.isEmpty()){var c=(b.type=="keyup"&&this.input.value!=this.placeholder)?"":this.placeholder;this.disable(c)}else{this.enable(this.input.value)}};a.prototype.isEmpty=function(){var b=(this.input.value==""||this.input.value==this.placeholder);return b};a.prototype.isTaint=function(){return !this.isEmpty()};a.prototype.clearInput=function(b){if(this.clearinput){this.input.value=""}var c=this.clearinput?"":this.input.value;this.disable(c)};a.prototype.disable=function(b){if(b!=this.input.value){this.input.value=b}y5.Classes.add(this.input,"b-input-empty")};a.prototype.enable=function(b){if(b!=this.input.value){this.input.value=b}y5.Classes.remove(this.input,"b-input-empty")};Friends.InputPlaceholder=a;y5.loaded("{Friends}.InputPlaceholder")});Friends.FriendControl=function(a){this.control=a;this.search=0;this.result=0;this.list=0;this.details=0;this.submit=0;this.textInitial="";this.searchSubmit=0;this.init()};Friends.FriendControl.prototype={clearSearchField:function(a){if(a.target.value==this.textInitial){a.target.value=""}y5.Classes.remove(a.target,"text-initial")},initialSearchField:function(a){if(y5.Strings.isEmpty(a.target.value)){y5.Classes.add(a.target,"text-initial");a.target.value=this.textInitial}},onCheckboxClick:function(b){b.stopPropagation();var a=y5.Dom.getDescendantOrSelf(b.target,"input","*");this.disableControl(a,(a.checked==""))},disableControl:function(g,f){var d=y5.Dom.getFollowing(y5.Dom.getAncestorOrSelf(g,"label","*"),"span","*")[0];y5.Classes.assign(d,"disabled",f);var c=y5.Dom.getDescendants(d,"input","*"),e,b;for(e=0,b=c.length;e<b;e++){c[e].disabled=f}},showUserInfo:function(){var c=this.list.selectedIndex;var d=this.list[c].value;var b=this.list[c].innerHTML;if(!d){return}this.setStatusMessage('Идёт загрузка карточки пользователя<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');var a=this;g_sources.getSource(d,function(e){a.getUserResponseOK(e,{parent:a})},this.getUserResponseError,{parent:this},true)},getUserResponseOK:function(a,b){y5.Classes.remove(b.parent.details,"details-empty");b.parent.details.innerHTML=a.info||""},getUserResponseError:function(a,b){},onSearch:function(){this.setStatusMessage('Идёт загрузка пользователей<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');var b=["textarea","select","button"];var d="input";var c=this.placeholders.filter(function(e){if(e.isEmpty()){d+='[name!="'+e.input.name+'"]'}return(!e.isEmpty()&&!y5.Strings.isVoid(e.input.value))})==0;b.push(d);if(c){this.setStatusMessage("Задан пустой поисковый запрос.");return false}var a=friendsURL("ajax/search_users",y5.FormCollector.collectTags(this.control,b));(function(e,f){jQuery.ajax({url:a,dataType:"json",success:function(g){e.searchResponseOK(g,f)},error:function(g){e.searchResponseError(g,f)}})})(this,{parent:this});return false},searchResponseOK:function(a,b){var c=b.parent;c.listParentNode.innerHTML=a.html;c.list=c.listParentNode.firstChild;if(c.list.length===0){c.setStatusMessage("никого не найдено");return}new y5.AEventListener("change",c.showUserInfo,c.list,true,c);c.list.selectedIndex=-1;c.setStatusMessage("← выберите человека")},searchResponseError:function(a){},setStatusMessage:function(a){y5.Classes.add(this.details,"details-empty");this.details.innerHTML=a},init:function(){var g=(y5.cssQuery('input[name="type"][type="hidden"]')[0]||{value:"unknown"}).value;y5.cssQuery(".b-write-friend-search input",this.control).forEach(function(a){y5.Events.observe("keypress",function(h){if(h.keyCode==13){h.preventDefault();h.stopPropagation();this.onSearch()}},a,true,this)},this);this.placeholders=y5.cssQuery(".Friends-later-InputPlaceholder",this.control).map(function(a){return new Friends.InputPlaceholder(a)});this.search=y5.Dom.getDescendant(this.control,"div","b-write-friend-search");this.searchSubmit=y5.Dom.getDescendant(this.search,"input","submit");y5.Events.observe("click",this.onSearch,this.searchSubmit,true,this);this.textInput=y5.Dom.getDescendant(this.search,"input","text");this.textInitial=this.textInput.value;new y5.AEventListener("focus",this.clearSearchField,this.textInput,true,this);new y5.AEventListener("blur",this.initialSearchField,this.textInput,true,this);var c=y5.Dom.getDescendants(this.search,"p","*"),d,b;for(d=0,b=c.length;d<b;d++){var f=y5.Dom.getDescendants(c[d],"label","*");if(f.length>0){y5.Events.observe("click",this.onCheckboxClick,f[0],true,this);this.disableControl(f[0],true)}}this.result=y5.Dom.getDescendant(this.control,"table","b-write-users-list");this.list=y5.Dom.getDescendants(y5.Dom.getDescendant(this.result,"td","list"),"select","*")[0];this.listParentNode=this.list.parentNode;this.details=y5.Dom.getDescendant(this.result,"td","details");var e=y5.Dom.getDescendant(this.control.parentNode,"div","b-write-submit");if(["congratulation","text"].indexOf(g)>-1){e=false}}};y5.require(["Strings","Dom","Classes","Events","Ajax","AjaxJS","FormCollector","{Friends}.InputPlaceholder"],function(){y5.loaded("{Friends}.FriendControl")});Friends.YauserSearch=function(a,b){if(arguments.length>0){this.init.apply(this,arguments)}};Friends.YauserSearch.prototype={init:function(a,b){this.control=a;this.control.YauserSearchControl=this;this.params=b;this.searchError_b=y5.Dom.getDescendants(this.control,"b","b-note-attention")[0];this.search_input=y5.Dom.getDescendant(this.control,"input","text");this.usersList_table=y5.Dom.getDescendant(this.control,"table","b-write-users-list");this.search_btn=y5.Dom.getDescendants(this.control,"input","submit")[0];this.myFriends_link=y5.Dom.getDescendant(this.control,"a","my-friends");this.friendControl=new Friends.FriendControl(this.control);this.search_btn.disabled=false;this.INVALID_SEARCH_TEXT="Логин или имя пользователя должны быть заданы";this.ajaxMethod_search="ajax/search_users_by_name_not_me";if(this.params){this.ajaxMethod_get="ajax/"+this.params.ajaxMethod_get}this.setEvents()},setEvents:function(){var a=this;$(this.control).find(".my-friends").die("click.yausersearch").live("click.yausersearch",function(g){a.hideErrorMessages();a.resetSearchResults();g.preventDefault();a.friendControl.setStatusMessage('Идёт загрузка пользователей<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');y5.Events.notify("y5:usersAreFound",a.friendControl,true);if(a.friendsHTML){a.onFriendsSearch(a.friendsHTML);return}var b=a;function f(e,h){b.onFriendsSearch(e.html);b.friendsHTML=e.html}function d(e){a.friendControl.setStatusMessage("ошибка "+e)}var c=friendsURL(a.ajaxMethod_get);jQuery.ajax({url:c,dataType:"json",success:f,error:d})});y5.ShortCut.down([{key:y5.ShortCut.ENTER}],function(b){return new y5.Event("click",this.search_btn,true)},this.search_input,{checkTarget:false,context:this})},onFriendsSearch:function(a){this.fillUsers_select(a);if(this.users_select.options.length===0){this.friendControl.setStatusMessage("никого не найдено");return}this.users_select.selectedIndex=0;this.friendControl.setStatusMessage("← выберите человека");this.friendControl.list=this.users_select;this.friendControl.showUserInfo();y5.Events.notify("y5:userIsSelected",this.friendControl,true);new y5.AEventListener("change",function(){this.friendControl.list=this.users_select;this.friendControl.showUserInfo();y5.Events.notify("y5:userIsSelected",this.friendControl,true)},this.users_select,true,this)},fillUsers_select:function(a){this.users_select=y5.Dom.getDescendant(this.control,"td","list").getElementsByTagName("select")[0];var b=this.users_select.parentNode;a=a.replace(/'/g,"\x27");b.innerHTML=a;this.users_select=b.firstChild},onSearch:function(){this.resetSearchResults();if(!this.isYauserLogin()){this.showErrorMessage(this.searchError_b,this.INVALID_SEARCH_TEXT);return false}y5.Events.notify("y5:usersAreFound",this.friendControl,true);return true},isYauserLogin:function(){return !y5.Strings.isVoid(this.search_input.value)},showErrorMessage:function(a,b){if(b){a.innerHTML=b}y5.Classes.remove(a,"i-hidden")},hideErrorMessages:function(a){y5.Classes.add(this.searchError_b,"i-hidden");y5.Events.notify("y5:hideErrorMessages",this.friendControl,true)},resetSearchResults:function(){this.hideErrorMessages();y5.Events.notify("y5:resetSearchResults",this.friendControl,true)},initUsers_select:function(){this.users_select=y5.Dom.getDescendant(this.control,"td","list").getElementsByTagName("select")[0];new y5.AEventListener("change",function(){y5.Events.notify("y5:userIsSelected",this.friendControl,true)},this.users_select,true,this)}};y5.require(["Dom","Events","ShortCuts","{Friends}.FriendControl"],function(){y5.loaded("{Friends}.YauserSearch");Friends.FriendControl.prototype.searchResponseOKOld=Friends.FriendControl.prototype.searchResponseOK;Friends.FriendControl.prototype.searchResponseOK=function(a,b){var c=b.parent;c.searchResponseOKOld(a,b);if(c.list.length){c.list.selectedIndex=0;c.showUserInfo();c.control.YauserSearchControl.initUsers_select();y5.Events.notify("y5:userIsSelected",c.control.YauserSearchControl.friendControl,true)}};Friends.FriendControl.prototype.searchResponseError=function(a){var b=a.parent;b.setStatusMessage("ошбика "+a)};Friends.FriendControl.prototype.onSearch=function(){if(!this.control.YauserSearchControl.onSearch()){return false}var c=this;this.setStatusMessage('Идёт загрузка пользователей<br /><img src="'+g_globals.img_base+'bar.gif" alt=""/>');var a=getByTagName("input",this.submit.form);var b=friendsURL(this.control.YauserSearchControl.ajaxMethod_search,y5.FormCollector.collectTags(this.control));jQuery.ajax({url:b,dataType:"json",success:function(d){c.searchResponseOK(d,{parent:c})},error:function(d){c.searchResponseError(d,{parent:c})}});return false}});y5.require(["{Friends}.YauserSearch","{Friends}.CommonConstructor"],function(){var a=Friends.CommonConstructor(Friends.YauserSearch);a.prototype.init=function(){Friends.YauserSearch.prototype.init.apply(this,arguments);this.insertError_b=y5.Dom.getDescendants(this.control,"b","b-note-attention")[1];this.yauser_span=y5.Dom.getDescendant(this.control,"b","b-user");this.yauserPreview_div=y5.Dom.getDescendant(this.control,"div","b-friend-name-preview");this.toChange_link=y5.Dom.getDescendant(this.control,"a","to-change");this.yauserName_input=y5.cssQuery('input[name="yauser-name"]',this.control)[0];this.dialogBtns=y5.Dom.getDescendant(this.control,"div","y5-w-buttons");this.ajaxMethod_search="ajax/search_users_by_name";this.ajaxMethod_get="ajax/get_friends";y5.Events.observe("y5:userIsSelected",this.showPreviewBlock,this.friendControl,true,this);y5.Events.observe("y5:usersAreFound",this.showSearchResult,this.friendControl,true,this);y5.Events.observe("y5:resetSearchResults",this.resetSearchResults,this.friendControl,true,this);y5.Events.observe("y5:hideErrorMessages",function(){y5.Classes.add(this.insertError_b,"i-hidden")},this.friendControl,true,this);y5.Events.observe("click",function(b){this.hideErrorMessages();this.yauserName_input.value=this.yauserName;y5.Classes.add(this.yauserPreview_div,"b-friend-name-preview-edit");this.yauserName_input.focus();this.yauserName_input.select();b.preventDefault()},this.toChange_link,true,this);if(!this.has_been_inited){y5.Events.observe("y5:show",function(b){if(typeof b.caller==="object"){this.caller=b.caller;this.caller_params=b.caller_params||{};this.title=this.caller_params.title||"Вставить ссылку на страницу пользователя Я.ру";this.showWidget()}},a,true,this);y5.Events.observe("y5:make",function(c){this.dialog=c;this.control=c.window;var b=this.dialog.element;this.init(this.control);y5.ShortCut.down([{key:y5.ShortCut.ENTER}],function(d){y5.Events.notify("click",this.dialog.button_ok)},this.yauserName_input,{checkTarget:false,context:this});y5.Events.notify("y5:yauser_make",this.caller,true,{caller:this});this.initDialogEvents()},this.getWidgetInitElement(),true,this);this.has_been_inited=true}y5.loaded("{Friends}.YauserSearchInPostInstance")};a.prototype.showSearchResult=function(){y5.Classes.remove(this.usersList_table,"i-hidden")};a.prototype.resetSearchResults=function(){this.yauserLogin="";this.yauserName="";this.yauser_span.innerHTML="";y5.Classes.add(this.usersList_table,"i-hidden");y5.Classes.add(this.yauserPreview_div,"i-hidden");if(this.dialogBtns){y5.Classes.add(this.dialogBtns,"i-hidden")}};a.prototype.showPreviewBlock=function(){y5.Classes.add(this.insertError_b,"i-hidden");if(!this.caller_params.dont_preview){y5.Classes.remove(this.yauserPreview_div,"i-hidden");y5.Classes.remove(this.yauserPreview_div,"b-friend-name-preview-edit")}var c=this.users_select;$(".b-friend-name-preview").yhide();if(c.options&&c.options.length){var b=c.options[this.users_select.selectedIndex];this.yauserLogin=b.id;var d=b.onclick();this.yauserName=d.title;this.data=d;this.data.id=b.value;this.setYauserName();$(".b-friend-name-preview").yshow();y5.Classes.remove(this.dialogBtns,"i-hidden")}};a.prototype.setYauserName=function(){this.yauser_span.innerHTML=this.createYauserLink(this.yauserLogin,this.yauserName)};a.prototype.createYauserLink=function(b,d){var e=d.substring(0,1);var c=d.substring(1);return'<a class="b-user__link" href="'+friendsFullURL(b)+'" target="_blank"><b class="b-user__first-letter">'+ya.xmlEscape(e)+"</b>"+ya.xmlEscape(c)+"</a>"};a.prototype.defineYauserName=function(){if(!y5.Strings.isVoid(this.yauserName_input.value)){this.yauserName=this.yauserName_input.value;this.setYauserName()}};a.prototype.getWidgetInitElement=function(){var b=this.dialog?this.dialog.element:this.control;return b};a.prototype.showWidget=function(){var b={title:this.title},d=this.caller_params;if("valign" in d){b.valign=d.valign}if("halign" in d){b.halign=d.halign}var c=y5.Widget.make(this.getWidgetInitElement(),"Widget.Dialog.Standard",b)};a.prototype.showErrorMessage=function(b,c){if(c){b.innerHTML=c}y5.Classes.remove(b,"i-hidden")};a.prototype.initDialogEvents=function(){var b=this.dialog.element;y5.Events.observe("y5:ok",this.onDialogOK,b,true,this);y5.Events.observe("y5:esc",this.onDialogEsc,b,true,this);y5.Events.observe("y5:cancel",this.onDialogCancel,b,true,this);this.initDialogEvents=function(){}};a.prototype.onDialogOK=function(){this.hideErrorMessages();this.defineYauserName();if(this.yauserName.length){y5.Events.notify("y5:yauser_defined",this.caller,true,{login:this.yauserLogin,name:this.yauserName,inflects:this.data.inflects,id:this.data.id})}else{this.showErrorMessage(this.insertError_b,"Не задано имя пользователя");return false}return true};a.prototype.onDialogEsc=function(){y5.Events.notify("y5:yauser_src",this.caller,true,{caller:this});return true};a.prototype.onDialogCancel=function(){y5.Events.notify("y5:yauser_cancel",this.caller,true,{caller:this});return true};Friends.YauserSearchInPost=a;y5.loaded("{Friends}.YauserSearchInPost")});Friends.Tips=function(a,b){this.control=a;this.__listeners=[];this.init(a,b)};Friends.Tips.prototype={init:function(a,b){this.table=y5.Dom.getAncestor(this.control,"table","b-tips");this.submitPseudoBtn=y5.Dom.getDescendant(this.control,"a","update");this.__listeners.push(new y5.AEventListener("click",this.onRequest,this.submitPseudoBtn,true,this))},onRequest:function(c){c.preventDefault();var b=new y5.Request.Form(this.control.action);var a=this;b.onload=function(d){y5.Classes.add(a.table,"i-hidden")};b.onerror=b.onload;b.send(this.control)},dectruct:function(){var b,a;for(b=0,a=this.__listeners.length;b<a;b++){this.__listeners[b].remove()}}};y5.require(["Dom","Events","Request.Form"],function(){y5.loaded("{Friends}.Tips")}); |