From e1f99759c6c3f169dce9e53b61dfa7535132c904 Mon Sep 17 00:00:00 2001 From: Denis Shakhov Date: Sun, 18 Oct 2015 22:16:30 +0700 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20"?= =?UTF-8?q?=D0=92=D1=81=D1=82=D1=83=D0=BF=D0=B8=D1=82=D1=8C"=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5=20?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/blocks/block.blog-actions.tpl | 4 +-- .../frontend/components/blog/js/blog-join.js | 29 ++++++++++++++----- .../frontend/skin/developer/assets/js/init.js | 24 ++++++++++----- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/application/frontend/components/blog/blocks/block.blog-actions.tpl b/application/frontend/components/blog/blocks/block.blog-actions.tpl index e4a8b79b..e490eaa7 100644 --- a/application/frontend/components/blog/blocks/block.blog-actions.tpl +++ b/application/frontend/components/blog/blocks/block.blog-actions.tpl @@ -9,8 +9,8 @@ {* Вступить/покинуть *} {if $oUserCurrent && $oUserCurrent->getId() != $blog->getOwnerId() && $blog->getType() == 'open'} {$actions[] = [ - 'classes' => 'js-blog-join', - 'attributes' => "data-blog-id=\"{$blog->getId()}\"", + 'classes' => 'js-blog-profile-join', + 'attributes' => [ 'data-blog-id' => $blog->getId() ], 'text' => {($blog->getUserIsJoin()) ? {lang 'blog.actions.leave'} : {lang 'blog.actions.join'}} ]} {/if} diff --git a/application/frontend/components/blog/js/blog-join.js b/application/frontend/components/blog/js/blog-join.js index 801db339..14bc690e 100644 --- a/application/frontend/components/blog/js/blog-join.js +++ b/application/frontend/components/blog/js/blog-join.js @@ -22,11 +22,13 @@ }, // Селекторы selectors: { - count: '.js-blog-users-count' + count: '.js-blog-users-count', + text: null }, // Классы classes : { - active: 'ls-button--primary' + active: 'ls-button--primary', + loading: null }, // Ajax параметры params : {} @@ -39,21 +41,33 @@ * @private */ _create: function () { + this._super(); + + if ( ! this.elements.text.length ) this.elements.text = this.element; + this.option( 'params.blog_id', this.element.data( 'blog-id' ) ); - this._on({ click: 'toggle' }); + this._on({ click: 'onClick' }); + }, + + /** + * + */ + onClick: function( event ) { + this.toggle(); + event.preventDefault(); }, /** * */ toggle: function() { - this.element.addClass( ls.options.classes.states.loading ); + this.element.addClass( this.option( 'classes.loading' ) ); this._load('toggle', function( response ) { this.onToggle( response ); - this.element.removeClass( ls.options.classes.states.loading ); + this.element.removeClass( this.option( 'classes.loading' ) ); }.bind( this )); }, @@ -61,9 +75,8 @@ * */ onToggle: function( response ) { - this.element - .text( ls.lang.get( response.bState ? 'blog.join.leave' : 'blog.join.join' ) ) - .toggleClass( this.option( 'classes.active' ) ); + this.element.toggleClass( this.option( 'classes.active' ) ); + this.elements.text.text( ls.lang.get( response.bState ? 'blog.join.leave' : 'blog.join.join' ) ); $( this.option( 'selectors.count' ) + '[data-blog-id=' + this.option( 'params.blog_id' ) + ']' ).text( response.iCountUser ); } diff --git a/application/frontend/skin/developer/assets/js/init.js b/application/frontend/skin/developer/assets/js/init.js index 5eb91725..1503a555 100644 --- a/application/frontend/skin/developer/assets/js/init.js +++ b/application/frontend/skin/developer/assets/js/init.js @@ -270,12 +270,6 @@ jQuery(document).ready(function($){ */ ls.auth.init(); - - /** - * User - */ - ls.user.init(); - // Поиск $( '.js-search-ajax-users' ).lsSearchAjax({ urls: { @@ -448,15 +442,31 @@ jQuery(document).ready(function($){ // Приглашение пользователей в блог $('.js-user-list-add-blog-invite').lsBlogInvites(); - // Вступить/покинуть блог + // Вступить/покинуть блог (список блогов) $( '.js-blog-join' ).livequery(function() { $( this ).lsBlogJoin({ urls: { toggle: aRouter.blog + 'ajaxblogjoin' + }, + classes: { + loading: ls.options.classes.states.loading } }); }); + // Вступить/покинуть блог (страница блога) + $( '.js-blog-profile-join' ).lsBlogJoin({ + urls: { + toggle: aRouter.blog + 'ajaxblogjoin' + }, + selectors: { + text: 'a' + }, + classes: { + active: 'active' + } + }); + // Поиск $( '.js-search-ajax-blog' ).lsSearchAjax({ urls: {