AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.111
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/amisdesseniors-fr/components/com_community/assets/chat/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/components/com_community/assets/chat/header.js
(function( $, _, Backbone ) {

    var util = require( './util' );

    /**
     * Conversation header view.
     * @class {Backbone.View}
     */
    module.exports = Backbone.View.extend({

        el: '.joms-js--chat-header',

        events: {
            'click .joms-js--chat-new-message': 'createDraftConversation',
            'click .joms-js--chat-header-selector-div [data-user-id]': 'selectorSelect',
            'click .joms-js--chat-leave': 'leaveChat',
            'click .joms-js--chat-mute': 'muteChat',
            'click .joms-js--chat-change-active-group-name': 'changeActiveGroupChatName',
            'click .remove-selected-user': 'removeSelectedUser',
            'click .joms-dropdown-button': 'bindActionToMobilePopup',
            'keyup .joms-chat__search_user': 'actionOnSearchInput',
            'keydown .joms-chat__search_user': 'removeLastSelectedUser'
        },

        initialize: function () {
            this.$info = this.$('.joms-js--chat-header-info');
            this.$button = this.$info.find('.joms-js--chat-new-message');
            this.$recipients = this.$info.find('.joms-chat__recipents');
            this.$selector = this.$('.joms-js--chat-header-selector');
            this.$selected = this.$selector.find('.joms-chat-selected');
            this.$selectorInput = this.$selector.find('.joms-input');
            this.$selectorDiv = this.$selector.find('.joms-js--chat-header-selector-div');
            this.$optionDropdown = this.$('.joms-js--chat-dropdown');
            this.$searchInput = this.$('.joms-chat__search_user');
            this.searchword = '';

            joms_observer.add_action('chat_selector_hide', this.selectorHide, 1, 0, this);
            joms_observer.add_action('chat_selector_show', this.selectorShow, 1, 0, this);
            joms_observer.add_action('chat_selector_reset', this.selectorReset, 1, 0, this);
            joms_observer.add_action('chat_update_info', this.updateChatInfo, 1, 0, this);
            joms_observer.add_action('chat_hide_new_message_button', this.hideNewMessageButton, 1, 0, this);
            joms_observer.add_action('chat_show_new_message_button', this.showNewMessageButton, 1, 0, this);
            joms_observer.add_action('chat_render_option_dropdown', this.renderOptionDropdown, 1, 3, this);
        },

        hideNewMessageButton: function() {
            this.$button.css('visibility', 'hidden');
        },

        showNewMessageButton: function() {
            this.$button.css('visibility', '');
        },

        bindActionToMobilePopup: function(e) {
            var self = this;
            if (joms.mobile) {
                setTimeout(function() {
                    var $mobile_dropdown = $('.joms-popup .joms-js--chat-dropdown');
                    var $chat_leave = $mobile_dropdown.find('.joms-js--chat-leave');
                    var $chat_mute = $mobile_dropdown.find('.joms-js--chat-mute');
                    var $chang_name = $mobile_dropdown.find('.joms-js--chat-change-active-group-name');

                    $chat_leave.on('click', function() {
                        self.leaveChat();
                    });

                    $chat_mute.on('click', function(e) {
                        self.muteChat(e);
                    });

                    $change_name.on('click', function() {
                        self.changeActiveGroupChatName();
                    });
                }, 300)
            }
        },

        changeActiveGroupChatName: function() {
            var name = prompt(joms_lang.COM_COMMUNITY_CHAT_NAME_OF_CONVERSATION, '');
            if(name == null){
                this.$optionDropdown.hide();
                return;
             }
            var MAX_CHAR = 250,
                MIN_CHAR = 4;
            if (name && name.length < MIN_CHAR) {
                alert(joms_lang.COM_COMMUNITY_CHAT_NAME_OF_CONVERSATION_SHOULD_NOT_BE_EMPTY);
            } else if (name && name.length > MAX_CHAR ) {
                alert(joms_lang.COM_COMMUNITY_CHAT_NAME_OF_CONVERSATION_SHOULD_BE_LESS_THAN_250_CHARACTERS);
            } else {
                joms_observer.do_action('chat_change_active_group_chat_name', name);
            }

            this.$optionDropdown.hide();
        },

        actionOnSearchInput: function(e) {
            if (e.which === 27 /* Esc key */) {
                this.selectorHide();
                joms_observer.do_action('chat_selector_hide');
                joms_observer.do_action('chat_selector_reset');
                joms_observer.do_action('chat_remove_draft_conversation');
                joms_observer.do_action('chat_open_first_window');
                this.searchword = '';
                return;
            }

            var self = this;
            var keyword = self.$searchInput.val().trim();
            var selected = self.$selected.find('.user-selected');
            var exclusion = '';
            if (selected.length) {
                exclusion = _.map(selected, function(item) {
                    return $(item).data('user-id');
                }).join(',');
            }
            self.$selectorDiv.empty();
            self.$selectorDiv.hide();
            
            
            if (keyword != self.searchword) {
                clearTimeout(self.search);
                self.searchword = keyword;
                if (!keyword) {
                    return;
                }
                self.search = setTimeout( function() {
                    self.$selectorDiv.append('<img src="'+joms.BASE_URL+'components/com_community/assets/ajax-loader.gif" alt="loader" />');
                    self.$selectorDiv.show();
                    joms.ajax({
                        func: 'chat,ajaxGetFriendListByName',
                        data: [keyword, exclusion],
                        callback: function (json) {
                            if (Array.isArray(json) && json.length) {
                                self.$selectorDiv.empty();
                                self.selectorRender(json);
                            } else {
                                self.$selectorDiv.text( self.$selectorDiv.data('textNoResult') );
                            }
                        }
                    });
                },500);
            }
        },

        leaveChat: function() {
            if(confirm(joms_lang.COM_COMMUNITY_CHAT_ARE_YOU_SURE_TO_LEAVE_THIS_CONVERSATION)) {
                joms_observer.do_action('chat_leave');
                this.$optionDropdown.hide();

                if (joms.mobile) {
                    $('.mfp-bg').remove();
                    $('.mfp-wrap').remove();
                }
            }
        },

        muteChat: function( e ) {
            var $dd = this.$optionDropdown,
                $btn = $( e.currentTarget ),
                mute = +$btn.data( 'mute' ),
                text = $btn.data( mute ? 'textMute' : 'textUnmute' );

            $dd.hide();
            $btn.html( text ).data( 'mute', mute ? 0 : 1 );
            joms_observer.do_action( 'chat_mute', mute );
        },

        renderOptionDropdown: function( type, mute, users ) {
            var $dd = this.$optionDropdown;
            var $mute = $dd.find( '.joms-js--chat-mute' );
            var $add = $dd.find( '.joms-js--chat-add-people' );
            var $change_name = $dd.find('.joms-js--chat-change-active-group-name');

            $mute.data( 'mute', +mute ).html( $mute.data( +mute ? 'textUnmute' : 'textMute' ) );
            $add.attr('onclick', 'joms.popup.chat.addRecipient(\''+users+'\')');
            type === 'group' ? ($add.show() ,$change_name.show()) : ($add.hide(), $change_name.hide());
        },

        removeLastSelectedUser: function (e) {
            var keyword = this.$searchInput.val().trim();
            if (e.which === 8 && !keyword) {
                var selected = this.$selected.find('.user-selected').last();
                selected.remove();
                this.updateChatInfo();
            }
        },

        removeSelectedUser: function(e) {
            var $user = $(e.currentTarget).parent();
            $user.remove();
            this.updateChatInfo();
        },

        createDraftConversation: function () {
            this.selectorShow();
            joms_observer.do_action('chat_create_draft_conversation');
        },

        /**
         * Render friend selector.
         * @param {object} buddies
         */
        selectorRender: function( buddies ) {
            _.each( buddies, function( buddy ) {
                this.$selectorDiv.append([
                    '<div class="joms-chat__item joms-selector-', buddy.id, '" data-user-id="',
                            buddy.id, '" style="padding:5px">',
                        '<div class="joms-avatar ', ( buddy.online ? 'joms-online' : '' ), '">',
                            '<a><img src="', buddy.avatar, '" /></a>',
                        '</div>',
                        '<div class="joms-chat__item-body">',
                            '<a>', buddy.name, '</a>',
                        '</div>',
                    '</div>'
                ].join('') );
            }, this );
        },

        /**
         * Show new chat selector.
         * @params {HTMLEvent} e
         */
        selectorShow: function () {
            this.$info.hide();
            this.$selector.show();
            this.$selectorInput.val('').focus();
        },

        /**
         * Hide new chat selector.
         */
        selectorHide: function () {
            this.$selectorInput.val('');
            this.$selector.hide();
            this.$info.show();
            this.$selectorDiv.hide();
        },

        selectorReset: function () {
            this.$selected.empty();
            this.$selectorDiv.empty();
        },

        /**
         * Hide new chat selector if Esc key is pressed.
         * @params {HTMLEvent} e
         */
        selectorHideOnEscape: function (e) {
            
        },

        /**
         * Hide new chat selector on input blur.
         * @params {HTMLEvent} e
         */
        selectorHideOnBlur: function (e) {
            this.selectorHide();
        },

        /**
         * Create new conversation with friend.
         * @params {HTMLEvent} e
         */
        selectorSelect: function( e ) {
            var $el = $( e.currentTarget ),
                user_id = $el.data( 'user-id' ),
                name = $el.find( '.joms-chat__item-body' ).text(),
                avatar = $el.find( 'img' ).attr( 'src' ),
                html;

            html = [
                '<span class="user-selected" data-user-id="' + user_id + '">',
                    name,
                    '<i class="fa fa-times remove-selected-user"></i>',
                '</span>'
            ].join('');

            $el.hide();
            this.$selected.append( html );
            this.$searchInput.val( '' ).focus();
            this.$selectorDiv.hide();
            this.updateChatInfo();
            this.searchword = '';
            
            joms_observer.do_action( 'chat_buddy_add', user_id, name, avatar );
        },

        updateChatInfo: function () {
            var user_selected,
                partner = [],
                name = [],
                chatname = '';
            user_selected = this.$selected.find('.user-selected');
            if (user_selected.length < 1) {
                joms_observer.do_action('chat_empty_message_view');
                joms_observer.do_action('chat_disable_message_box');
            } else if (user_selected.length === 1) {
                name.push(user_selected.text());
                joms_observer.do_action('chat_single_conversation_get_by_user', user_selected.data('user-id'));
                joms_observer.do_action('chat_enable_message_box');
            } else if (user_selected.length > 1) {
                _.each(user_selected, function (item) {
                    partner.push($(item).data('user-id'));
                    name.push($(item).text());
                }, this);
                joms_observer.do_action('chat_empty_message_view');
                joms_observer.do_action('chat_enable_message_box');
            }

            if ( name.length ) {
                chatname = util.formatName( name );
            }

            joms_observer.do_action('chat_update_draft_conversation', chatname, partner);
            joms_observer.do_action('rename_chat_title', chatname);

        }

    });

})( joms.jQuery, joms._, joms.Backbone );

Anon7 - 2022
AnonSec Team