%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.144.16.152
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/client/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/client/glavred.js
;(function() {
	"use strict";

	BX.namespace("BX.Landing.Client");

	var createSelectionRange = BX.Landing.Utils.createSelectionRange;
	var wrapSelection = BX.Landing.Utils.wrapSelection;

	var STATUS_OK = "ok";
	var STATUS_FAIL = "fail";
	var STATUS_PENDING = "pending";


	/**
	 * Implements Glavred API client interface
	 * Implements singleton design pattern
	 * @constructor
	 */
	BX.Landing.Client.Glavred = function()
	{
		this.markupMatcher = new RegExp("(<span[^>]*class=\"glvrd-underline\"[^>]*>)(.+?)(<\\/span>)", "g");
		this.serviceStatus = STATUS_PENDING;
		this.proofStatus = STATUS_OK;
	};


	/**
	 * Gets client instance
	 * @static
	 * @returns {BX.Landing.Client.Glavred}
	 */
	BX.Landing.Client.Glavred.getInstance = function()
	{
		return (
			BX.Landing.Client.Glavred.instance ||
			(BX.Landing.Client.Glavred.instance = new BX.Landing.Client.Glavred())
		);
	};


	BX.Landing.Client.Glavred.prototype = {
		/**
		 * Checks service API status
		 * @return {Promise}
		 */
		getStatus: function()
		{
			return new Promise(function(resolve, reject) {
				if (this.serviceStatus !== STATUS_OK)
				{
					top.glvrd.getStatus(function(response) {
						if(response.status === STATUS_OK) {
							resolve();
							this.serviceStatus = STATUS_OK;
						} else {
							reject(response.message);
							this.serviceStatus = STATUS_FAIL;
						}
					}.bind(this));
				}
				else
				{
					resolve();
				}
			}.bind(this));
		},


		/**
		 * Proofreads node text
		 * @param {HTMLElement} node
		 * @return {Promise<Number>} - Text score
		 */
		proofread: function(node)
		{
			return this.getStatus()
				.then(function() {
					return new Promise(function(resolve) {
						top.glvrd.proofread(node.textContent, resolve);
					})
				})
				.then(function(response) {
					this.removeMarkup(node);
					this.addMarkup(node, response);
					return this.getScore(node.textContent, response.fragments);
				}.bind(this));
		},


		/**
		 * Gets text score
		 * @param {string} text
		 * @param {object[]} fragments - Fragments from response
		 * @return {Promise<Number>}
		 */
		getScore: function(text, fragments)
		{
			return this.getStatus().then(function() {
				return top.glvrd.getScore({text: text, fragments: fragments});
			});
		},


		/**
		 * Adds markup
		 * @param {HTMLElement} node
		 * @param {object} response - glvrd.proofread response
		 */
		addMarkup: function(node, response)
		{
			response.fragments.forEach(function(fragment) {
				var range = createSelectionRange(node, fragment.start, fragment.end);
				var element = BX.create("span", {props: {className: "glvrd-underline"}});
				wrapSelection(element, range);
				element.addEventListener("mouseenter", function() {
					BX.Landing.UI.Tool.Suggest.getInstance().show(this, fragment.hint);
				});
			}.bind(this));
		},


		/**
		 * Removes all Glavred markup
		 */
		removeMarkup: function(node)
		{
			node.innerHTML = node.innerHTML.replace(this.markupMatcher, "$2");
			node.innerHTML = node.innerHTML.replace(this.markupMatcher, "$2");
		}
	};
})();

Youez - 2016 - github.com/yon3zu
LinuXploit