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/cvetdv.ru/bitrix/js/im/view/element/attach/src/types/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/view/element/attach/src/types/file.js
/**
 * Bitrix Messenger
 * Vue component
 *
 * File (attach type)
 *
 * @package bitrix
 * @subpackage im
 * @copyright 2001-2019 Bitrix
 */

import "./file.css";
import {Vue} from "ui.vue";
import {FilesModel} from "im.model";
import {Utils} from "im.lib.utils";
import "ui.icons.disk";

export const AttachTypeFile =
{
	property: 'FILE',
	name: 'bx-im-element-attach-file',
	component:
	{
		props:
		{
			config: {type: Object, default: {}},
			color: {type: String, default: 'transparent'},
		},
		methods:
		{
			openLink(element)
			{
				Utils.platform.openNewPage(element.LINK);
			},
			file()
			{
				return {
					name: this.config.FILE.NAME,
					extension: this.config.FILE.NAME.split('.').splice(-1)[0],
					size: this.config.FILE.SIZE,
				};
			},
			fileName(element)
			{
				let maxLength = 70;

				if (!element.NAME || element.NAME.length < maxLength)
				{
					return element.NAME;
				}

				let endWordLength = 10;

				let extension = element.NAME.split('.').splice(-1)[0];
				let secondPart = element.NAME.substring(element.NAME.length-1 - (extension.length+1+endWordLength));
				let firstPart = element.NAME.substring(0, maxLength-secondPart.length-3);

				return firstPart.trim()+'...'+secondPart.trim();
			},
			fileNameFull(element)
			{
				return element.NAME;
			},
			fileSize(element)
			{
				let size = element.SIZE;
				if (!size || size <= 0)
				{
					size = 0;
				}

				let sizes = ["BYTE", "KB", "MB", "GB", "TB"];
				let position = 0;

				while (size >= 1024 && position < 4)
				{
					size /= 1024;
					position++;
				}

				return Math.round(size) + " " + this.$Bitrix.Loc.getMessage('IM_MESSENGER_ATTACH_FILE_SIZE_'+sizes[position]);
			},
			fileIcon(element)
			{
				return FilesModel.getIconType(element.NAME.split('.').splice(-1)[0]);
			}
		},
		template: `
			<div class="bx-im-element-attach-type-file-element">
				<template v-for="(element, index) in config.FILE">
					<div class="bx-im-element-attach-type-file" @click="openLink(element)">
						<div class="bx-im-element-attach-type-file-icon">
							<div :class="['ui-icon', 'ui-icon-file-'+fileIcon(element)]"><i></i></div>
						</div>
						<div class="bx-im-element-attach-type-file-block">
							<div class="bx-im-element-attach-type-file-name" :title="fileNameFull(element)">
								{{fileName(element)}}
							</div>
							<div class="bx-im-element-attach-type-file-size">{{fileSize(element)}}</div>
						</div>
					</div>
				</template>
			</div>
		`
	},
};

Youez - 2016 - github.com/yon3zu
LinuXploit