From b29968b1bc2067fcaca5383df0dc3483312ad151 Mon Sep 17 00:00:00 2001 From: AlexeyMatveev686 Date: Mon, 6 Apr 2020 14:38:10 +0300 Subject: [PATCH 1/3] Added source files --- README.md | 23 +--- config.json | 45 +++++++ icon.png | Bin 0 -> 3621 bytes icon2.png | Bin 0 -> 1421 bytes icon2@2x.png | Bin 0 -> 1704 bytes icon@2x.png | Bin 0 -> 4475 bytes index.html | 46 ++++++++ translations/de-DE.json | 3 + translations/es-ES.json | 3 + translations/fr-FR.json | 3 + translations/ru-RU.json | 3 + youtube.js | 251 ++++++++++++++++++++++++++++++++++++++++ 12 files changed, 360 insertions(+), 17 deletions(-) create mode 100644 config.json create mode 100644 icon.png create mode 100644 icon2.png create mode 100644 icon2@2x.png create mode 100644 icon@2x.png create mode 100644 index.html create mode 100644 translations/de-DE.json create mode 100644 translations/es-ES.json create mode 100644 translations/fr-FR.json create mode 100644 translations/ru-RU.json create mode 100644 youtube.js diff --git a/README.md b/README.md index d5bf54d0..de242e1e 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,11 @@ -# YouTube plugin +## Overview -The YouTube plugin allows users to insert YouTube videos into text documents, spreadsheets and presentations, as well as to manipulate the embedded video: adjust its size, rotate and change position. +Easily embed YouTube videos into your documents. -The plugin is pre-installed in ONLYOFFICE Enterprise Edition, Community Edition (Document Server + Community Server), ONLYOFFICE Integration Edition, ONLYOFFICE cloud service, and ONLYOFFICE Personal. +It is installed by default in cloud, [self-hosted](https://github.com/ONLYOFFICE/DocumentServer) and [desktop version](https://github.com/ONLYOFFICE/DesktopEditors) of ONLYOFFICE editors. ## How to use -1. Place the cursor where you want a video to appear. -2. Choose YouTube from the Plugins tab. -3. Paste YouTube video URL and click the OK button. -4. Double click the video to play it. - -## Documentation - -Plugins structure and installation https://api.onlyoffice.com/plugin/basic. - -Plugins code and methods https://api.onlyoffice.com/docbuilder/basic. - -## User feedback and support - -To ask questions and share feedback, use Issues in this repository. +1. Find the YouTube plugin in the Plugins tab. +2. Insert the video URL and press OK. +3. The video preview in form of an image will appear in your doc. Click on it to play the video. diff --git a/config.json b/config.json new file mode 100644 index 00000000..8e972b6b --- /dev/null +++ b/config.json @@ -0,0 +1,45 @@ +{ + "name": "YouTube", + "guid": "asc.{38E022EA-AD92-45FC-B22B-49DF39746DB4}", + + "variations": [ + { + "description": "YouTube", + "url": "index.html", + + "icons": [ "icon.png", "icon@2x.png", "icon2.png", "icon2@2x.png" ], + "isViewer": true, + "isDisplayedInViewer": false, + "EditorsSupport": [ "word", "cell", "slide" ], + + "isVisual": true, + "isModal": true, + "isInsideMode": false, + + "initDataType": "ole", + "initData": "", + + "isUpdateOleOnResize": false, + + "buttons": [ + { + "text": "Ok", + "primary": true + }, + { + "text": "Cancel", + "primary": false, + "isViewer": false, + "textLocale": { + "ru": "Отмена", + "fr": "Annuler", + "es": "Cancelar", + "de": "Abbrechen" + } + } + ], + + "size": [ 350, 90 ] + } + ] +} diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..656bb137b925b1fda3a641ab108d200d815c21d6 GIT binary patch literal 3621 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 literal 0 HcmV?d00001 diff --git a/icon2@2x.png b/icon2@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..42d763a69e9e2c10ba6f3a919a0e42fa5d11d0de GIT binary patch literal 1704 zcmah~4NMbf7_LPTSQ)sPVKM5Z{t}^g*FV}@D}`RwPODfjFm7Pd*$x1E&idn z7BY=Kt=h<{XM3i#pk4k-*%*=$LFyoD9jpusek663H%i-(Q~hdEf7O z-#1s0xnfCdOk#{kB#N~x#clko627QNer)tl|DB(toH>`vqMe+NV1Ou{r1Jn|aTEE# z1_&}x^exbfL=oLob}pA|U5+_ux110#a=+WlTZ=^cG{2W{6aWs&1NoH4AiMX~H!_GK z4YC}y6|s6vz(p-BVL(>Nifl(ofkQ{i(iTB_KgJWd0Y^Z7ccF*H{07+wFUGHhV^{`_ zK)3>f>~T=J)=bDmGXPS{l_?GcMIntwj;hoe4Vnxo5L5vp{HsYpRhU|XDN>=)N5*?& zNGE2)7mxblcLte@GZ~bOMJ$k-{TV*no#4{3#xG_80>WSO-IS zIg0i`0wa+}7jp&~AL-*OxV>Ro4?8LoFBt46yf7+9ge#2zNk0-vgC)qh$2+NC^7(j3|lTFiw zV~S_GXpUxGv==gEX`lr;l!v5!Y|>MBfD;@r$awWrQxGjLeKxAb5GAkvLViS$$51Ox zQqI6Lp*jpv{RhgYo+LQpf5D^!bJC2P;Pt13YK6U?{1IQ3vQ6{SCdl| ziK%g1g_;y>w}7w=_a46qcQ5epEz9t| zY4~Y+r${8uvEb?1{`S0~;o-CfuXwqnL9(;N)oOZgX5!y1M?%4=_HF1isT7@asNm8A z(a{Ca^P;>Lp_gVrzO#`xmBup@%HOuE-#jqswF$M`>Z9_j15v+KlF*OQ7tWU@zwooT zNY|3ZR{Ry;GP}?i^S;*k=HcUWja8DqHkge2#J);9Ro_s0t0}kYb+M|lQBtFTB72cT>{dQYeBB z%qVL<{YbK|rv7|+CGgjsu56qu9q8$phJXGC=Y4?3AP~RC;$y@ZQ=~ z#iq*ktG&Y=*K6+9918WLo8D==(%b!OagXoZo#-tG(;9j~Mnc1hPY=6NKQzYmcK65H zclIGe`jeslvN?4Vw;o#L98i2PYk!UgL52pGbo{V)UvPNiV6f{_ZIa}doD?uHJea!q zSi~CX5O`%)!*w%z)W+;-4dOl9WI$UrWVuf=CX%vO{Wu-l7ru0n`^v!A*20^;i3(*jHZv4 z1-Iu{dm7ir#dh48s#+O)Bl<*_c=7yQOAM->npJVTgvyDC7KtUInva|MrVP&O7yca< L^9uZUhJE|L@4RiI literal 0 HcmV?d00001 diff --git a/icon@2x.png b/icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..853330a60c1cbdf5aa54003a337be1b30eed0210 GIT binary patch literal 4475 zcmV->5rpoEP)004&%004{+008|`004nN004b?008NW002DY000@xb3BE2000U( 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 N002ovPDHLkV1hIOZ=?VK literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 00000000..8969701d --- /dev/null +++ b/index.html @@ -0,0 +1,46 @@ + + + + + youtube + + + + + + + + + + +
Paste youtube video URL
+ +
+
+ + +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/translations/de-DE.json b/translations/de-DE.json new file mode 100644 index 00000000..532ae64f --- /dev/null +++ b/translations/de-DE.json @@ -0,0 +1,3 @@ +{ + "Paste youtube video URL": "Fügen Sie die YouTube-Video-URL ein" +} \ No newline at end of file diff --git a/translations/es-ES.json b/translations/es-ES.json new file mode 100644 index 00000000..571b97ef --- /dev/null +++ b/translations/es-ES.json @@ -0,0 +1,3 @@ +{ + "Paste youtube video URL": "Pegue URL de vídeo YouTube" +} \ No newline at end of file diff --git a/translations/fr-FR.json b/translations/fr-FR.json new file mode 100644 index 00000000..f4970f74 --- /dev/null +++ b/translations/fr-FR.json @@ -0,0 +1,3 @@ +{ + "Paste youtube video URL": "Collez URl de vidéo Youtube" +} \ No newline at end of file diff --git a/translations/ru-RU.json b/translations/ru-RU.json new file mode 100644 index 00000000..b58f1761 --- /dev/null +++ b/translations/ru-RU.json @@ -0,0 +1,3 @@ +{ + "Paste youtube video URL" : "Вставьте ссылку на видео YouTube" +} \ No newline at end of file diff --git a/youtube.js b/youtube.js new file mode 100644 index 00000000..be0c7d14 --- /dev/null +++ b/youtube.js @@ -0,0 +1,251 @@ +(function(window, undefined){ + + var url = ""; + var player = null; + var isWindowPlayer = false; + var isViewerMode = false; + + function getParam(url, param) + { + var _questPos = url.indexOf("?"); + if (_questPos < 0 && _questPos >= (url.length - 1)) + return undefined; + + var _url = url.substr(_questPos + 1); + var _propPos = _url.indexOf(param + "="); + if (_propPos < 0 && _propPos >= (url.length - 1)) + return undefined; + + _propPos += param.length; + _propPos += 1; // '=' + + var _last = _url.indexOf("&", _propPos); + if (_last < 0) + _last = _url.length; + + return _url.substr(_propPos, _last - _propPos); + } + + function validateYoutubeUrl1(url) + { + var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; + return (url.match(p)) ? true : false; + } + function validateYoutubeUrl2(url) + { + var p = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=|\?v=)([^#\&\?]*).*/; + var match = url.match(p); + return (match && match[2] && match[2].length == 11) ? true : false; + } + + var validateYoutubeUrl = validateYoutubeUrl2; + + function getVideoId(url) + { + var _ids = url.split("/"); + var _id = _ids[_ids.length - 1]; + + if (0 == _id.indexOf("watch?v=")) + _id = _id.substr(8); + + var _amp = _id.indexOf("&"); + if (-1 != _amp) + _id = _id.substr(0, _amp); + + return _id; + } + + window.Asc.plugin.init = function(text) + { + var _textbox = document.getElementById("textbox_url"); + _textbox.onkeyup = function(e) + { + if (e.keyCode == 13) // click on Enter + document.getElementById("textbox_button").onclick(); + }; + + if (this.info.isViewMode != isViewerMode) + { + isViewMode = this.info.isViewMode; + var _table = document.getElementsByTagName("table")[0]; + + if (_table) + { + if (_table.rows[0]) + _table.rows[0].style.display = isViewMode ? "none" : ""; + + if (_table.rows[1]) + _table.rows[1].style.display = isViewMode ? "none" : ""; + } + } + + // clear validation on input/paste + _textbox.oninput = _textbox.onpaste = function(e) + { + this.style.borderColor = ""; + document.getElementById("input_error_id").style.display = "none"; + }; + // ie + _textbox.addEventListener("paste", function(e) + { + this.style.borderColor = ""; + document.getElementById("input_error_id").style.display = "none"; + }); + + document.getElementById("textbox_button").onclick = function(e) + { + var _url = document.getElementById("textbox_url").value; + + var _searchDoubleStart = 10; + var _findDoubleUrl = _url.indexOf("http://", _searchDoubleStart); + if (_findDoubleUrl < 0) + _findDoubleUrl = _url.indexOf("https://", _searchDoubleStart); + if (_findDoubleUrl < 0) + _findDoubleUrl = _url.indexOf("www.", _searchDoubleStart); + + if (_findDoubleUrl > 0) + { + _url = _url.substr(0, _findDoubleUrl); + document.getElementById("textbox_url").value = _url; + } + + if (!validateYoutubeUrl(_url)) + { + document.getElementById("textbox_url").style.borderColor = "#d9534f"; + document.getElementById("input_error_id").style.display = "block"; + return; + } + + if (!isWindowPlayer) + { + var _table = document.getElementById("id_player"); + _table.innerHTML = "
"; + isWindowPlayer = true; + + window.Asc.plugin.resizeWindow(620, 480, 390, 400, 0, 0); + } + + if (true) + { + url = _url; + + if (!player) + { + var opt = { + height: '100%', + width: '100%', + videoId: getVideoId(url), + playerVars: { + 'fs' : 1 + } + }; + + var _time = getParam(url, "t"); + if (_time && _time.length > 0) + opt.playerVars.start = parseInt(_time); + + player = new YT.Player('content', opt); + } + else + { + if (player.stopVideo && player.loadVideoById) + { + player.stopVideo(); + player.loadVideoById(getVideoId(url)); + } + } + } + }; + + url = text; + if (url == "") + { + this.resizeWindow(350, 90, 350, 90, 350, 90); + } + else + { + document.getElementById("textbox_url").value = url; + document.getElementById("textbox_button").onclick(); + } + + _textbox.focus(); + }; + + window.Asc.plugin.button = function(id) + { + try + { + if (player && player.stopVideo) + player.stopVideo(); + } + catch (err) + { + } + + if (id == 0) + { + url = document.getElementById("textbox_url").value; + + if (!validateYoutubeUrl(url)) + { + document.getElementById("textbox_url").style.borderColor = "#d9534f"; + document.getElementById("input_error_id").style.display = "block"; + return; + } + + var _id = getVideoId(url); + var _questPos = _id.indexOf("?"); + if (_questPos > 0) + _id = _id.substr(0, _questPos); + + var _url = "http://img.youtube.com/vi/" + _id + "/0.jpg"; + if (_id) + { + var _info = window.Asc.plugin.info; + + var _method = (_info.objectId === undefined) ? "AddOleObject" : "EditOleObject"; + + var _param = { + guid : _info.guid, + widthPix : (_info.mmToPx * _info.width) >> 0, + heightPix : (_info.mmToPx * _info.height) >> 0, + width : _info.width ? _info.width : 100, + height : _info.height ? _info.height : 70, + imgSrc : _url, + data : url, + objectId : _info.objectId, + resize : _info.resize + }; + + window.Asc.plugin.executeMethod(_method, [_param], function() { + window.Asc.plugin.executeCommand("close", ""); + }); + } + else + { + this.executeCommand("close", ""); + } + } + else + { + this.executeCommand("close", ""); + } + }; + + window.Asc.plugin.onEnableMouseEvent = function(isEnabled) + { + var _frames = document.getElementsByTagName("iframe"); + if (_frames && _frames[0]) + { + _frames[0].style.pointerEvents = isEnabled ? "none" : ""; + } + }; + + window.Asc.plugin.onTranslate = function() + { + var label = document.getElementById("td_labelUrl"); + if (label) + label.innerHTML = window.Asc.plugin.tr("Paste youtube video URL"); + }; + +})(window, undefined); From 677e5a3042c22a9311ab66f89a8b5a973f7911c6 Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Wed, 15 Apr 2020 10:46:02 +0300 Subject: [PATCH 2/3] Changes for new scheme --- index.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 8969701d..a1e9d004 100644 --- a/index.html +++ b/index.html @@ -5,10 +5,11 @@ youtube - - - - + + + + +