403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/im/view/popup/src/type/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/im/view/popup/src/type/chat.js
import { Vue } from "ui.vue";
import { RestMethod, RestMethodHandler } from "im.const";

export const Chat =
{
	props: ['value', 'popupInstance'],
	data()
	{
		return {
			chat: {},
			hasError: false,
			requestFinished: false
		};
	},
	created()
	{
		const chatData = this.getChat(this.value);
		if (chatData)
		{
			this.chat = chatData;
			this.requestFinished = true;
		}
		else
		{
			this.requestChatData(this.value);
		}
	},
	mounted()
	{
		this.popupInstance.show();
	},
	beforeDestroy()
	{
		this.popupInstance.destroy();
	},
	methods:
	{
		getChat(dialogId)
		{
			return this.$store.getters['dialogues/get'](dialogId);
		},
		requestChatData(dialogId)
		{
			this.$Bitrix.RestClient.get().callMethod(RestMethod.imChatGet, {
				dialog_id: dialogId
			}).then(response => {
				this.$Bitrix.Data.get('controller').executeRestAnswer(RestMethodHandler.imChatGet, response);

				this.chat = this.getChat(this.value);
				this.requestFinished = true;
			}).catch((error) => {
				this.hasError = true;
				console.error(error);
				this.requestFinished = true;
			});
		},

		//events
		onOpenChat(event)
		{
			this.popupInstance.destroy();
			BXIM.openMessenger(this.value);
		},
		onOpenHistory(event)
		{
			this.popupInstance.destroy();
			BXIM.openHistory(this.value);
		},
	},
	computed:
	{
		avatarStyles()
		{
			const styles = {};
			if (this.emptyAvatar)
			{
				styles.backgroundColor = this.chat.color;
			}

			return styles;
		},
		chatAvatar()
		{
			if (this.emptyAvatar)
			{
				return '/bitrix/js/im/images/blank.gif';
			}
			else
			{
				return this.chat.avatar;
			}
		},
		emptyAvatar()
		{
			return this.chat.avatar === '' || this.chat.avatar.indexOf('/bitrix/js/im/images/blank.gif') >= 0;
		},
	},
	//language=Vue
	template: `
		<div class="bx-messenger-external-data" style="width: 272px; max-width: 272px; height: 100px;">
			<div v-if="requestFinished && !hasError">
				<div class="bx-messenger-external-avatar">
					<div class="bx-messenger-panel-avatar bx-messenger-panel-avatar-chat">
						<img
							:src="chatAvatar"
							:alt="chat.name"
							:style="avatarStyles"
							:class="[emptyAvatar ? 'bx-messenger-panel-avatar-img-default' : '', 'bx-messenger-panel-avatar-img']"
						>
					</div>
					<span v-if="chat.extranet" class="bx-messenger-panel-title"><div class="bx-messenger-user-extranet">{{ chat.name }}</div></span>
					<span v-else class="bx-messenger-panel-title">{{ chat.name }}</span>
					<span class="bx-messenger-panel-desc">{{ $Bitrix.Loc.getMessage('IM_VIEW_POPUP_CONTENT_GROUP_CHAT') }}</span>
				</div>
				<div class="bx-messenger-external-data-buttons">
				<span class="bx-notifier-item-button bx-notifier-item-button-white" @click="onOpenChat">
					{{ $Bitrix.Loc.getMessage('IM_VIEW_POPUP_CONTENT_OPEN_CHAT') }}
				</span>
					<span class="bx-notifier-item-button bx-notifier-item-button-white" @click="onOpenHistory">
					{{ $Bitrix.Loc.getMessage('IM_VIEW_POPUP_CONTENT_OPEN_HISTORY') }}
				</span>
				</div>
			</div>
			<span v-else-if="!requestFinished && !hasError" class="bx-messenger-content-load-img"></span>
			<div v-else-if="requestFinished && hasError">
				{{ $Bitrix.Loc.getMessage('IM_VIEW_POPUP_CONTENT_NO_ACCESS') }}
			</div>
		</div>
	`
};

Youez - 2016 - github.com/yon3zu
LinuXploit