Changed marketplace fot working inside plugin

This commit is contained in:
AlexeyMatveev686
2022-06-20 18:35:11 +03:00
parent 6dfb6a83a3
commit aea5eb346a
100 changed files with 551 additions and 422 deletions

81
.gitmodules vendored Normal file
View File

@ -0,0 +1,81 @@
[submodule "store/submodels/plugin-macros"]
path = store/submodels/plugin-macros
url = https://github.com/ONLYOFFICE/plugin-macros.git
[submodule "store/submodels/plugin-autocomplete"]
path = store/submodels/plugin-autocomplete
url = https://github.com/ONLYOFFICE/plugin-autocomplete.git
[submodule "store/submodels/plugin-mendeley"]
path = store/submodels/plugin-mendeley
url = https://github.com/ONLYOFFICE/plugin-mendeley.git
[submodule "store/submodels/plugin-ocr"]
path = store/submodels/plugin-ocr
url = https://github.com/ONLYOFFICE/plugin-ocr.git
[submodule "store/submodels/plugin-youtube"]
path = store/submodels/plugin-youtube
url = https://github.com/ONLYOFFICE/plugin-youtube.git
[submodule "store/submodels/plugin-translator"]
path = store/submodels/plugin-translator
url = https://github.com/ONLYOFFICE/plugin-translator.git
[submodule "store/submodels/plugin-wordpress"]
path = store/submodels/plugin-wordpress
url = https://github.com/ONLYOFFICE/plugin-wordpress.git
[submodule "store/submodels/plugin-highlightcode"]
path = store/submodels/plugin-highlightcode
url = https://github.com/ONLYOFFICE/plugin-highlightcode.git
[submodule "store/submodels/plugin-easybib"]
path = store/submodels/plugin-easybib
url = https://github.com/ONLYOFFICE/plugin-easybib.git
[submodule "store/submodels/plugin-thesaurus"]
path = store/submodels/plugin-thesaurus
url = https://github.com/ONLYOFFICE/plugin-thesaurus.git
[submodule "store/submodels/plugin-photoeditor"]
path = store/submodels/plugin-photoeditor
url = https://github.com/ONLYOFFICE/plugin-photoeditor.git
[submodule "store/submodels/plugin-zotero"]
path = store/submodels/plugin-zotero
url = https://github.com/ONLYOFFICE/plugin-zotero.git
[submodule "store/submodels/plugin-speech"]
path = store/submodels/plugin-speech
url = https://github.com/ONLYOFFICE/plugin-speech.git
[submodule "store/submodels/plugin-deepl"]
path = store/submodels/plugin-deepl
url = https://github.com/ONLYOFFICE/plugin-deepl.git
[submodule "store/submodels/plugin-languagetool"]
path = store/submodels/plugin-languagetool
url = https://github.com/ONLYOFFICE/plugin-languagetool.git
[submodule "store/submodels/plugin-glavred"]
path = store/submodels/plugin-glavred
url = https://github.com/ONLYOFFICE/plugin-glavred.git
[submodule "store/submodels/plugin-telegram"]
path = store/submodels/plugin-telegram
url = https://github.com/ONLYOFFICE/plugin-telegram.git
[submodule "store/submodels/plugin-rainbow"]
path = store/submodels/plugin-rainbow
url = https://github.com/ONLYOFFICE/plugin-rainbow.git
[submodule "store/submodels/plugin-jitsi"]
path = store/submodels/plugin-jitsi
url = https://github.com/ONLYOFFICE/plugin-jitsi.git
[submodule "store/submodels/plugin-wordscounter"]
path = store/submodels/plugin-wordscounter
url = https://github.com/ONLYOFFICE/plugin-wordscounter.git
[submodule "store/submodels/plugin-drawio"]
path = store/submodels/plugin-drawio
url = https://github.com/ONLYOFFICE/plugin-drawio.git
[submodule "store/submodels/plugin-html"]
path = store/submodels/plugin-html
url = https://github.com/ONLYOFFICE/plugin-html.git
[submodule "store/submodels/plugin-apertium"]
path = store/submodels/plugin-apertium
url = https://github.com/ONLYOFFICE/plugin-apertium.git
[submodule "store/submodels/plugin-typograf"]
path = store/submodels/plugin-typograf
url = https://github.com/ONLYOFFICE/plugin-typograf.git
[submodule "store/submodels/plugin-grammalecte"]
path = store/submodels/plugin-grammalecte
url = https://github.com/ONLYOFFICE/plugin-grammalecte.git
[submodule "store/submodels/plugin-doc2md"]
path = store/submodels/plugin-doc2md
url = https://github.com/ONLYOFFICE/plugin-doc2md.git
[submodule "store/submodels/sdkjs-plugins"]
path = store/submodels/sdkjs-plugins
url = https://github.com/ONLYOFFICE/sdkjs-plugins.git

View File

@ -1,218 +1,56 @@
{
"A103601F-FDA0-418A-BC37-A514031894C0" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-autocomplete/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-autocomplete/master/"
},
"E6978D28-0441-4BD7-8346-82FAD68BCA3B" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-macros/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-macros/master/"
},
"BE5CBF95-C0AD-4842-B157-AC40FEDD9441" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-mendeley/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-mendeley/master/"
},
"440EBF13-9B19-4BD8-8621-05200E58140B" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-ocr/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-ocr/master/"
},
"38E022EA-AD92-45FC-B22B-49DF39746DB4" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-youtube/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-youtube/master/"
},
"7327FC95-16DA-41D9-9AF2-0E7F449F6800" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-translator/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-translator/master/"
},
"0847b6a4-b007-11e7-abc4-cec278b6b50a" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-wordpress/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-wordpress/master/"
},
"BE5CBF95-C0AD-4842-B157-AC40FEDD9841" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-highlightcode/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-highlightcode/master/"
},
"c9d216a5-4f1a-49f2-9ff0-67c510a73523" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-easybib/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-easybib/master/"
},
"BE5CBF95-C0AD-4842-B157-AC40FEDD9840" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-thesaurus/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-thesaurus/master/"
},
"07FD8DFA-DFE0-4089-AL24-0730933CC80A" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-photoeditor/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-photoeditor/master/"
},
"BFC5D5C6-89DE-4168-9565-ABD8D1E48711" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-zotero/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-zotero/master/"
},
"D71C2EF0-F15B-47C7-80E9-86D671F9C595" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-speech/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-speech/master/"
},
"b78a062b-e349-4634-8a44-99825600d299" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-deepl/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-deepl/master/"
},
"7CDB02C9-A0BF-4B56-9A1A-71C860B8498F" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-languagetool/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-languagetool/master/"
},
"B631E142-E40B-4B4C-90B9-2D00222A286E" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-glavred/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-glavred/master/"
},
"E5773A43-F9B3-4E81-81D9-CE0A132470E7" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-telegram/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-telegram/master/"
},
"0743b63f-cb32-438c-b46b-81ce182ff4f7" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-rainbow/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-rainbow/master/"
},
"7645D461-84BC-4FB0-A42C-98118C14A1CD" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-jitsi/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-jitsi/master/"
},
"584EEEE8-DBF5-45C3-A4CA-F52177C82754" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-wordscounter/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-wordscounter/master/"
},
"DB38923B-A8C0-4DE9-8AEE-A61BB5C901A5" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-drawio/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-drawio/master/"
},
"E581C417-3C80-4BC2-B42D-502850FDC1E7" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-html/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-html/master/"
},
"9b224050-2354-4c1b-822b-03a97f61c79d" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-apertium/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-apertium/master/"
},
"55159EC6-C91A-4DDB-8E1E-558454666461" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-typograf/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-typograf/master/"
},
"6ef67492-a111-4ca5-bd4f-bf02645afc61" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-grammalecte/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-grammalecte/master/"
},
"5aff455d-96c4-4bd8-9658-16e5bc143738" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-doc2md/master/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/plugin-doc2md/master/"
},
"FFE1F462-1EA2-4391-990D-4CC84940B754" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/chess/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/chess/"
},
"5C521CB8-FD20-4CA3-83D7-1EEB8F4DC759" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/clippy/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/clippy/"
},
"89643394-0F74-4297-9E0B-541A67F1E98C" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_add_comment_in_cell/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_add_comment_in_cell/"
},
"5F9D4EB4-AF61-46EF-AE25-46C96E75E1DD" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/cbr/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/cbr/"
},
"CD4E451C-6928-43A4-B641-ECBBF688AC76" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_add_content_controls/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_add_content_controls/"
},
"111735E0-69A7-4D4A-9ABE-F58FD70F488D" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_controls/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_controls/"
},
"C05D81BC-92C7-4C48-BA49-E8B9AAFCD776" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_custom_fields_add_2/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_custom_fields_add_2/"
},
"4E2B5030-E1BE-41FA-BEE3-7E9BE7B5BFCF" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_customfields_add/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_customfields_add/"
},
"E5A81B17-C871-4C4B-A90A-62D3A7EC0751" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_customfields_load/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_customfields_load/"
},
"91EAC419-EF8B-440C-A960-B451C7DF3A37" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_extended_comments/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_extended_comments/"
},
"7CC733B1-9B26-4977-926E-D212B13F2B70" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_insert_content_and_document/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_insert_content_and_document/"
},
"EF5735E0-69A7-4D4A-9ABE-F58FD70F488D" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_move_cursor/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_move_cursor/"
},
"EF5735E0-69A7-4D4A-9ABE-F58FD70F488J" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_search_and_change_text_background_color/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_search_and_change_text_background_color/"
},
"5FF5F75F-2977-4B98-8D36-7C406D610B90" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_search_replace/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_search_replace/"
},
"F30BDD79-23A0-4B05-8DE3-2AB77D03A1B4" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_speech_input/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_speech_input/"
},
"267D986E-C41D-4E3E-BA4D-54AA6CB952EF" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls/"
},
"639E69BC-58DE-4029-9B43-F0420F67E6F9" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_combo/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_combo/"
},
"C9945AC2-8275-4F9B-92E4-CA1104D7305B" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_content/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_content/"
},
"C36DDFB5-08F0-4A68-B829-5FB1F7D49728" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_navigation/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_navigation/"
},
"C36DDFB5-08F0-4A68-B829-5FB1F7D49331" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_tags/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_tags/"
},
"A8705DEE-7544-4C33-B3D5-168406D92F72" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/externallistener/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/externallistener/"
},
"0616AE85-5DBE-4B6B-A0A9-455C4F1503AD" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/helloworld/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/helloworld/"
},
"6B6715E5-A558-4F70-8058-40704CD659CF" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/invoices/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/invoices/"
},
"902F74A4-89F2-4028-8DB0-BD913E07335C" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/num2word/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/num2word/"
},
"C820F3CC-1248-4CA2-8D0F-D7EFD44DE09C" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/searchAndReplaceOnStart/config.json",
"imageUrl" : ""
},
"CF3A000F-C6B4-451D-AC0B-F3DDAB1880D2" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/settings/config.json",
"imageUrl" : ""
},
"03C18A8D-8E01-444A-86EB-EDDFA7773157" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/symboltable/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/symboltable/"
},
"94DF0B57-299D-4F68-AF6F-9A6BB53F3031" : {
"configUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/templates/config.json",
"imageUrl" : "https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/templates/"
}
}
[
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-autocomplete/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-macros/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-mendeley/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-ocr/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-youtube/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-translator/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-wordpress/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-highlightcode/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-easybib/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-thesaurus/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-photoeditor/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-zotero/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-speech/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-deepl/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-languagetool/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-glavred/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-telegram/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-rainbow/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-jitsi/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-wordscounter/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-drawio/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-html/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-apertium/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-typograf/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-grammalecte/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/plugin-doc2md/master/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/chess/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/clippy/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_add_comment_in_cell/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/cbr/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_add_content_controls/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_controls/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_custom_fields_add_2/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_customfields_add/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_customfields_load/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_extended_comments/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_insert_content_and_document/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_move_cursor/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_search_and_change_text_background_color/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_search_replace/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_speech_input/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_combo/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_content/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_navigation/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/example_work_with_content_controls_tags/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/externallistener/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/helloworld/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/invoices/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/num2word/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/searchAndReplaceOnStart/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/settings/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/symboltable/config.json",
"https://raw.githubusercontent.com/ONLYOFFICE/sdkjs-plugins/master/templates/config.json"
]

View File

@ -26,24 +26,26 @@
</head>
<body>
<div id="div_header" class="header noselect hidden">
<span id="arrow" class="arrow hidden">&#8592;</span>
<!-- <span id="arrow" class="arrow hidden">&#8592;</span> -->
<label id="lbl_header" class="aboutlable header">Manage plugins</label>
<span id="close" class="close">&times;</span>
</div>
<div id="div_body" class="div_body hidden">
<div id="toolbar" class="toolbar noselect">
<div class="toolbar_buttons">
<button id="btn_myPlugins" class="btn-text-default">My plugins</button>
<button id="btn_marketplace" class="btn-text-default btn_selected">Marketplace</button>
<button id="btn_myPlugins" class="btn_menu btn-text-default">My plugins</button>
<button id="btn_marketplace" class="btn_menu btn-text-default submit primary">Marketplace</button>
</div>
<div class="toolbar_link">
<!-- TODO подумать над тем, как открывать форму для загрузки -->
<a id="link_newPlugin" class="aboutlink link_submit" target="blank" href="https://htmldom.dev/make-a-resizable-element/">Submit your own plugin</a>
<a id="link_newPlugin" class="aboutlink link_submit" target="blank" href="https://github.com/ONLYOFFICE/onlyoffice.github.io/pulls">Submit your own plugin</a>
</div>
</div>
<div id="div_main" class="main_content noselect"></div>
</div>
<div id="div_selected_toolbar" class="div_selected_toolbar hidden">
<!-- временно пока сюда добавил стрелку, чтобы назад можно было вернуться -->
<span id="arrow" class="arrow hidden">&#8592;</span>
<!-- временно поставил такие размеры картинки 56 (чтобы выглядело симминтрично пока) -->
<div style="width:56px">
<img id="img_icon" style="height:56px">
@ -55,9 +57,9 @@
<span id="span_offered"></span>
</div>
<div>
<button id="btn_update" class="btn-text-default btn_preview" onclick="onClickItemButton(event.target.parentNode, event.target.innerText)">Update</button>
<button id="btn_remove" class="btn-text-default btn_preview" onclick="onClickItemButton(event.target.parentNode, event.target.innerText)">Remove</button>
<button id="btn_install" class="btn-text-default btn_preview" onclick="onClickItemButton(event.target.parentNode, event.target.innerText)">Install</button>
<button id="btn_update" class="btn-text-default btn_preview" onclick="onClickUpdate(event.target)">Update</button>
<button id="btn_remove" class="btn-text-default btn_preview" onclick="onClickRemove(event.target.parentNode)">Remove</button>
<button id="btn_install" class="btn-text-default btn_preview" onclick="onClickInstall(event.target.parentNode)">Install</button>
</div>
</div>
</div>
@ -99,6 +101,7 @@
</div>
</div>
</div>
<div id="loader-container" class="asc-loader-container div_loader"></div>
<div id="div_error" class="error_main hidden"><div class="loader_background"></div></div>
<div id="loader-container" class="asc-loader-container div_loader"><div class="loader_background"></div></div>
</body>
</html>

View File

@ -19,9 +19,9 @@ button {
div.header {
background: #d8dadc;
display: flex;
justify-content: center;
border-bottom: solid var(--scaled-one-pixel, 1px) #4444;
display: flex;
justify-content: center;
border-bottom: solid var(--scaled-one-pixel, 1px) #4444;
align-items: center;
}
@ -30,9 +30,8 @@ label.header {
font-size: 14px !important;
}
.btn_selected {
color: #fff;
background-color: #7d858c
.btn_menu {
font-weight: normal !important;
}
.div-loader {
@ -45,9 +44,9 @@ label.header {
.close {
position: absolute;
right: 10px;
font-size: 25px;
opacity: 0.7;
right: 10px;
font-size: 25px;
opacity: 0.7;
cursor: pointer;
}
@ -57,9 +56,10 @@ label.header {
.arrow {
position: absolute;
left: 10px;
font-size: 20px;
opacity: 0.7;
/* left: 10px; */
top: 0;
font-size: 20px;
opacity: 0.7;
cursor: pointer;
}
@ -69,13 +69,13 @@ label.header {
.toolbar {
display: flex;
justify-content: space-between;
margin: 20px 15px;
justify-content: space-between;
margin: 20px 15px;
}
.toolbar_link {
display: flex;
align-items: center;
align-items: center;
margin-right: 5px;
font-size: 13px;
}
@ -113,9 +113,9 @@ label.header {
}
.div_image {
display: flex;
justify-content: center;
align-items: center;
background: rgb(52,126,232);
justify-content: center;
align-items: center;
background: rgb(52,126,232);
cursor: pointer;
border-radius: 3px 3px 0 0;
}
@ -127,28 +127,49 @@ label.header {
margin-left: 10px;
}
.div_footer {
display: flex;
justify-content: center;
width: 100%;
position: absolute;
bottom: 0px;
flex-flow: column;
display: flex;
justify-content: center;
width: 100%;
position: absolute;
bottom: 0px;
flex-flow: column;
}
.btn_install {
margin: 0px 10px 10px;;
width: calc(100% - 20px);
}
.btn_preview {
margin: 10px 0px 10px 10px;
width: fit-content;
margin: 10px 0px 10px 10px;
width: fit-content;
}
.div_loader {
margin: 10px;
height: 40px;
/* margin: 10px;
top: 50%;
right: 50%;
right: 50%; */
width: 100%;
height: 100%;
position: absolute !important;
}
.div_notification {
display: flex;
justify-content: center;
}
.span_notification {
font-size: 15px;
}
.loader_background {
width: 100%;
height: 100%;
background-color: #adadad;
opacity: 0.5;
}
.asc-loader-title {
padding-left: 10px !important;
}
.div_body {
/* border: 1px solid red; */
height: 100%;
@ -159,26 +180,13 @@ label.header {
font-size: 13px !important;
}
.link_submit {
color : #445799 !important;
}
.link_submit:hover {
color : #445799 !important;
cursor: pointer;
}
.link_submit:active {
color : #445799 !important;
}
.link_submit:visited {
color : #445799 !important;
text-decoration: none !important;
}
.link_info {
border-bottom: 1px solid;
text-decoration: none !important;
text-decoration: none !important;
}
.hidden {
@ -239,10 +247,24 @@ label.header {
.span_update {
align-self: flex-end;
background-color: #06a10d;
color: white;
padding: 1px 5px;
border: 1px solid #06a10d;
border-radius: 12px;
margin: 10px;
background-color: #06a10d;
color: white;
padding: 1px 5px;
border: 1px solid #06a10d;
border-radius: 12px;
margin: 10px;
}
.error_main {
position: absolute;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.error_caption {
font-size: 15px;
color: red;
}

View File

@ -16,19 +16,19 @@
*
*/
// todo ссылки при install/update поправить
let allPlugins; // list of all plugins from config
let installedPlugins; // list of intalled plugins
const configUrl = './config.json'; // url to config.json
const elements = {}; // all elements
const isDesctop = true; // window.AscDesktopEditor !== undefined;
let isLoading = false; // flag loading
let loader; // loader
var Ps; // perfect scrollbar
const lang = detectLanguage() || "en-EN"; // current language
const shorLang = lang.split('-')[0]; // short language
let bTranslate = false; // flag translate or not
let translate = // translations for current language
let allPlugins; // list of all plugins from config
let installedPlugins; // list of intalled plugins
const configUrl = './config.json'; // url to config.json
const elements = {}; // all elements
const isDesctop = window.AscDesktopEditor !== undefined; // desctop detecting
let isLoading = false; // flag loading
let loader; // loader
var Ps; // perfect scrollbar
let theme = parent.localStorage.getItem('ui-theme-id') || ''; // current theme
const lang = detectLanguage() || "en-EN"; // current language
const shortLang = lang.split('-')[0]; // short language
let bTranslate = false; // flag translate or not
let translate = // translations for current language
{
"My plugins": "My plugins",
"Marketplace": "Marketplace",
@ -48,17 +48,33 @@ let translate = // translations for current language
"with the plugin functionality on our forum." : "with the plugin functionality on our forum.",
"Create a new plugin using" : "Create a new plugin using"
}
//it's necessary because we show loader before all (and getting translations too)
switch (shortLang) {
case 'ru':
translate["Loading"] = "Загрузка"
break;
case 'fr':
translate["Loading"] = "Chargement"
break;
case 'es':
translate["Loading"] = "Carga"
break;
case 'de':
translate["Loading"] = "Laden"
break;
case 'cs':
translate["Loading"] = "Načítání"
break;
}
// for making preview
let counter = 0;
let row;
let theme;
// TODO решить проблему с темой и добавить для неё разные стили (после интеграции можно будет попробовать прокинуть событие смены темы)
// в теории её можно достать из parent.localStorage.getItem('ui-theme-id')
// TODO для того, чтобы лоадер работал нормально нужно создать такой объект (так как он из него берет информацию о теме)
window.Asc = {
plugin : {
theme : {
type : 'light'
type : JSON.parse(parent.localStorage.getItem('ui-theme')).type
}
}
}
@ -68,49 +84,43 @@ getTranslation();
// fetch all plugins from config
fetchAllPlugins();
// get all installed plugins
sendMessage({type : 'getInstalled'}, '*');
detectLanguage();
setTimeout(function(){
// для того, чтобы плагин успел запуститься и не слать кучу сообщений для временного решения
sendMessage({type : 'getInstalled'}, '*');
}, 500);
window.onload = function() {
// detect theme (this is not currently in use)
theme = parent.localStorage.getItem('ui-theme-id') || '';
console.log('detected theme: ' + theme);
// init element
initElemnts();
if (shorLang == "en") {
if (shortLang == "en") {
// if nothing to translate
showMarketplace();
}
elements.btnMyPlugins.onclick = function() {
// click on my plugins button
if ( !this.classList.contains('btn_selected') ) {
elements.btnMarketplace.classList.remove('btn_selected');
this.classList.add('btn_selected');
if ( !this.classList.contains('primary') ) {
elements.btnMarketplace.classList.remove('submit','primary');
this.classList.add('submit','primary');
elements.linkNewPlugin.innerHTML = translate["Install plugin manually"];
elements.divMain.innerHTML = "";
counter = 0;
installedPlugins.forEach(function(el) {
createPluginDiv(el.guid);
});
showListofPlugins(false);
}
};
elements.btnMarketplace.onclick = function() {
// click on marketplace button
if ( !this.classList.contains('primary') ) {
elements.btnMyPlugins.classList.remove('btn_selected');
this.classList.add('btn_selected');
elements.btnMyPlugins.classList.remove('submit','primary');
this.classList.add('submit','primary');
elements.linkNewPlugin.innerHTML = translate["Submit your own plugin"];
elements.divMain.innerHTML = "";
for (const guid in allPlugins) {
createPluginDiv(guid);
}
showListofPlugins(true);
}
};
elements.arrow.onclick = function() {
// click on left arrow in preview mode
document.getElementById('span_overview').click();
elements.divSelected.classList.add('hidden');
elements.divSelectedMain.classList.add('hidden');
elements.divBody.classList.remove('hidden');
@ -124,22 +134,96 @@ window.onload = function() {
};
if (isLoading) {
toogleLoader(true);
toogleLoader(true, "Loading");
}
};
window.addEventListener('message', function(event) {
// get message from editors
switch (event.data.type) {
case 'installed':
installedPlugins = event.data.data;
window.addEventListener('message', function(message) {
// getting messages from editor
message = JSON.parse(message.data);
switch (message.type) {
case 'InstalledPlugins':
installedPlugins = message.data;
if (allPlugins)
getAllPluginsData();
break;
default:
case 'Installed':
let plugin = allPlugins.find(function(el){ return el.guid === message.guid});
installedPlugins.push(
{
url: plugin.url,
guid: message.guid,
canRemoved: true,
obj: plugin
}
);
if (elements.btnMarketplace.classList.contains('primary')) {
let btn = this.document.getElementById(message.guid).lastChild.lastChild;
btn.innerHTML = translate['Remove'];
btn.onclick = function(e) {
onClickRemove(e.target);
};
}
if (!elements.divSelected.classList.contains('hidden')) {
this.document.getElementById('btn_install').classList.add('hidden');
this.document.getElementById('btn_remove').classList.remove('hidden');
}
toogleLoader(false);
break;
}
case 'Updated':
let installed = installedPlugins.find(function(el) {
return (el.guid == message.guid);
});
let config = allPlugins.find(function(el){ return el.guid === message.guid});
installed.obj.version = config.version;
if (!elements.divSelected.classList.contains('hidden')) {
this.document.getElementById('btn_update').classList.add('hidden');
}
this.document.getElementById(message.guid).lastChild.firstChild.remove();
toogleLoader(false);
break;
case 'Removed':
installedPlugins = installedPlugins.filter(function(el){return el.guid !== message.guid});
if (elements.btnMyPlugins.classList.contains('primary')) {
showListofPlugins(false);
} else {
let btn = this.document.getElementById(message.guid).lastChild.lastChild;
btn.innerHTML = translate['Install'];
btn.onclick = function(e) {
onClickInstall(e.target);
};
if (btn.parentNode.childElementCount > 1) {
btn.parentNode.firstChild.remove();
}
}
if (!elements.divSelected.classList.contains('hidden')) {
this.document.getElementById('btn_remove').classList.add('hidden');
this.document.getElementById('btn_install').classList.remove('hidden');
this.document.getElementById('btn_update').classList.add('hidden');
}
toogleLoader(false);
break;
case 'Error':
createError(message.error);
toogleLoader(false);
break;
case 'Theme':
let rule = '\n.asc-plugin-loader{background-color:' + message.theme['background-normal'] +';padding: 10px;display: flex;justify-content: center;align-items: center;border-radius: 5px;}';
let styleTheme = document.createElement('style');
styleTheme.type = 'text/css';
styleTheme.innerHTML = message.style + rule;
document.getElementsByTagName('head')[0].appendChild(styleTheme);
break;
};
}, false);
function fetchAllPlugins() {
@ -151,9 +235,9 @@ function fetchAllPlugins() {
getAllPluginsData();
},
function(err) {
//TODO make error preview
console.error(err);
createError(err);
isLoading = false;
toogleLoader(false);
}
);
};
@ -170,11 +254,13 @@ function makeRequest(url) {
if (this.readyState == 4) {
if (this.status == 200 || location.href.indexOf("file:") == 0) {
setTimeout(() => {
resolve(this.response);
}, 1000);
resolve(this.response);
}, 500);
// resolve(this.response);
}
if (this.status >= 400) {
reject(new Error(this.response));
}
}
};
@ -192,7 +278,7 @@ function sendMessage(message) {
};
function detectLanguage() {
// TODO в теории язык можно вытащить из parent.location.search
// this function detects current language
if (parent.location && parent.location.search) {
let _langSearch = parent.location.search;
let _pos1 = _langSearch.indexOf("lang=");
@ -235,71 +321,105 @@ function initElemnts() {
elements.linkPlugin = document.getElementById('link_plugin');
};
function toogleLoader(show) {
function toogleLoader(show, text) {
// show or hide loader
if (!show) {
document.getElementById('loader-container').classList.add('hidden');
loader && (loader.remove ? loader.remove() : $('#loader-container')[0].removeChild(loader));
loader = undefined;
} else if(!loader) {
document.getElementById('loader-container').classList.remove('hidden');
loader && (loader.remove ? loader.remove() : $('#loader-container')[0].removeChild(loader));
loader = showLoader($('#loader-container')[0], 'Loading...');
loader = showLoader($('#loader-container')[0], (translate[text] || text) + '...');
}
};
function getAllPluginsData() {
for (const guid in allPlugins) {
const cur = allPlugins[guid];
let pluginUrl = allPlugins[guid].configUrl;
// get config file for each item in config.json
let counter = 0;
allPlugins.forEach(function(pluginUrl, i, arr) {
counter++;
makeRequest(pluginUrl).then(
function(response) {
counter--;
let config = JSON.parse(response);
let guid = config.guid.substring(5, 41);
allPlugins[guid].config = config;
createPluginDiv(guid);
Ps.update();
isLoading = false;
toogleLoader(false)
config.url = pluginUrl;
arr[i] = config;
// Ps.update();
if (!counter) {
isLoading = false;
showListofPlugins(true);
toogleLoader(false);
}
},
function(err) {
//TODO make error preview
console.error(err);
isLoading = false;
toogleLoader(false);
// TODO решить проблему, если не получили конфиг, чтобы у нас не было лишних (пустых элементов)
createError(err);
if (!counter) {
isLoading = false;
showListofPlugins(true);
toogleLoader(false);
}
}
);
}
})
Ps = new PerfectScrollbar('#' + "div_main", {});
};
function showListofPlugins(bAll) {
// show list of plugins
elements.divMain.innerHTML = "";
counter = 0;
if (bAll) {
// show all plugins
allPlugins.forEach(function(plugin) {
if (plugin)
createPluginDiv(plugin, false);
});
} else if (installedPlugins.length) {
// show only installed
// TODO подумать над тем, что если в списке установленных есть плагин, которого нет в маркетплейсе
installedPlugins.forEach(function(plugin) {
createPluginDiv(plugin, true);
});
} else {
// if no istalled plugins and my plugins button was clicked
createNotification('No plugins istalled.');
}
function createPluginDiv(guid) {
// TODO добавить надпись что плагинов установленных нет
}
function createPluginDiv(plugin, bInstalled) {
// this function creates div (preview) for plugins
// TODO может сделать динамическое количество элементов в одной строке
if (counter <= 0 || counter >= 4) {
row = document.createElement('div');
row.className = "div_row"
document.getElementById('div_main').append(row);
elements.divMain.append(row);
counter = 1;
}
let div = document.createElement('div');
div.setAttribute('data-guid', guid);
div.id = plugin.guid;
div.setAttribute('data-guid', plugin.guid);
div.className = 'div_item';
let installed = installedPlugins.find(function(el) {
return (el.guid == guid);
});
let installed = bInstalled ? plugin : installedPlugins.find( function(el) { return (el.guid == plugin.guid); } );
let bHasUpdate = false;
if (isDesctop && installed) {
let installedV = installed.obj.version.split('.').join('');
let lastV = allPlugins[guid].config.version.split('.').join('');
const installedV = (installed.obj.version ? installed.obj.version.split('.').join('') : 1);
const lastV = (plugin.version ? plugin.version.split('.').join('') : installedV);
if (lastV > installedV)
bHasUpdate = true;
}
let imageUrl = allPlugins[guid].imageUrl;
let variations = allPlugins[guid].config.variations[0];
// TODO либо в getInstalled возвращать ещё и url или делать такой поиск для картинки
if (bInstalled)
plugin = allPlugins.find(function(el){
return el.guid === plugin.guid
});
if (!plugin) return;
let imageUrl = plugin.url.replace('config.json','');
let variations = plugin.variations[0];
// TODO решить вопрос со scale, чтобы выбирать нужную иконку
if (variations.icons2) {
//
@ -318,8 +438,8 @@ function createPluginDiv(guid) {
imageUrl = "./resources/img/defaults/light/icon@2x.png"
}
// TODO подумать от куда брать цвет на фон под картинку (может в config добавить)
let name = (bTranslate && allPlugins[guid].config.nameLocale) ? allPlugins[guid].config.nameLocale[shorLang] : allPlugins[guid].config.name;
let description = (bTranslate && variations.descriptionLocale) ? variations.descriptionLocale[shorLang] : variations.description;
let name = (bTranslate && plugin.nameLocale) ? plugin.nameLocale[shortLang] : plugin.name;
let description = (bTranslate && variations.descriptionLocale) ? variations.descriptionLocale[shortLang] : variations.description;
let template = '<div class="div_image" onclick="onClickItem(event.target)">' +
// временно поставил такие размеры картинки (чтобы выглядело симминтрично пока)
'<img style="width:56px;" src="' + imageUrl + '">' +
@ -334,8 +454,8 @@ function createPluginDiv(guid) {
: ''
)+''+
(installed
? (installed.canRemoved ? '<button class="btn-text-default btn_install" onclick="onClickItemButton(event.target, event.target.innerText)">' + translate["Remove"] + '</button>' : '<div style="height:20px"></div>')
: '<button class="btn-text-default btn_install" onclick="onClickItemButton(event.target, event.target.innerText)">' + translate["Install"] + '</button>'
? (installed.canRemoved ? '<button class="btn-text-default btn_install" onclick="onClickRemove(event.target)">' + translate["Remove"] + '</button>' : '<div style="height:20px"></div>')
: '<button class="btn-text-default btn_install" onclick="onClickInstall(event.target)">' + translate["Install"] + '</button>'
)
+
'</div>';
@ -345,40 +465,49 @@ function createPluginDiv(guid) {
Ps.update();
};
function onClickItemButton(target, type) {
// click on install/remove button
function onClickInstall(target) {
// click install button
toogleLoader(true, "Installation");
let guid = target.parentNode.parentNode.getAttribute('data-guid');
let message;
let confUrl = allPlugins[guid].configUrl.replace('raw.githubusercontent', 'github');
switch (type) {
case 'Install':
message = {
type : 'install',
url : confUrl.replace('master', 'blob/master')
};
break;
case 'Update':
message = {
type : 'update',
url : confUrl.replace('master', 'blob/master')
};
break;
case 'Remove':
message = {
type : 'remove',
guid: guid
};
break;
}
let plugin = allPlugins.find( function(el) { return el.guid === guid; } );
let message = {
type : 'install',
url : plugin.url, //replace('raw.githubusercontent', 'github').replace('master', 'blob/master'),
guid : guid,
config : plugin
};
sendMessage(message);
};
// TODO наверно хотелось бы получать сообщения о том успешно ли прошел процесс установки/удаления/лбновления (чтобы уже в этом окне отобразить изменения)
function onClickUpdate(target) {
// click update button
toogleLoader(true, "Updating");
let guid = target.parentElement.parentElement.parentElement.getAttribute('data-guid');
let plugin = allPlugins.find( function(el) { return el.guid === guid; } );
let message = {
type : 'update',
url : plugin.url,
guid : guid,
config : plugin
};
sendMessage(message);
};
function onClickRemove(target) {
// click remove button
toogleLoader(true, "Removal");
let guid = target.parentNode.parentNode.getAttribute('data-guid');
let message = {
type : 'remove',
guid : guid
};
sendMessage(message);
};
function onClickItem(target) {
// There we will make preview for selected plugin
// TODO продумать где брать offered by и где брать текс для этого блока (может из конфига) (так же переводы для него надо добавить)
let offered = "TESTdsadasddasdasdasdasdas";
let offered = " Ascensio System SIA";
let description = "Correct French grammar and typography. The plugin uses Grammalecte, an open-source grammar and typographic corrector dedicated to the French language.Correct French grammar and typography."
elements.divSelected.classList.remove('hidden');
@ -393,16 +522,19 @@ function onClickItem(target) {
let installed = installedPlugins.find(function(el) {
return (el.guid == guid);
});
let plugin = allPlugins.find(function(el) {
return (el.guid == guid);
});
let bHasUpdate = false;
if (isDesctop && installed) {
let installedV = installed.obj.version.split('.').join('');
let lastV = allPlugins[guid].config.version.split('.').join('');
let lastV = plugin.version.split('.').join('');
if (lastV > installedV)
bHasUpdate = true;
}
let confUrl = allPlugins[guid].configUrl.replace('raw.githubusercontent', 'github');
let pluginUrl = (allPlugins[guid].configUrl.includes('sdkjs-plugins') ? confUrl.replace('master', 'tree/master').replace('config.json', '') : confUrl.replace('master/config.json', ''));
let confUrl = plugin.url.replace('raw.githubusercontent', 'github');
let pluginUrl = (plugin.url.includes('sdkjs-plugins') ? confUrl.replace('master', 'tree/master').replace('config.json', '') : confUrl.replace('master/config.json', ''));
// TODO проблема с тем, что в некоторых иконках плагинов есть отступ сверху, а в некоторых его нет (исходя их этого нужен разный отступ у span справа, чтобы верхние края совпадали)
elements.divSelected.setAttribute('data-guid', guid);
elements.imgIcon.setAttribute('src', target.children[0].src);
@ -429,7 +561,7 @@ function onClickItem(target) {
elements.btnInstall.classList.remove('hidden');
}
if (allPlugins[guid].config.variations[0].isVisual) {
if (plugin.variations[0].isVisual) {
elements.imgScreenshot.setAttribute('src', './resources/img/screenshotes/' + guid + '.png');
elements.imgScreenshot.classList.remove('hidden');
} else {
@ -457,10 +589,39 @@ function onSelectPreview(target, isOverview) {
}
};
function createNotification(text) {
// creates any notification for user inside elements.divMain window (you should clear this element before making notification)
let div = document.createElement('div');
div.className = 'div_notification';
let span = document.createElement('span');
span.className = 'span_notification';
span.innerHTML = translate[text] || text;
div.append(span);
elements.divMain.append(div);
};
function createError(err) {
// creates a modal window with error message for user and error in console
console.error(err);
let background = document.createElement('div');
background.className = 'asc-plugin-loader';
let span = document.createElement('span');
span.className = 'error_caption';
span.innerHTML = err.message;
background.append(span);
document.getElementById('div_error').append(background);
document.getElementById('div_error').classList.remove('hidden');
setTimeout(function() {
// remove error after 5 seconds
background.remove();
document.getElementById('div_error').classList.add('hidden');
}, 5000);
};
function setDivHeight() {
// set height for div with image in preview mode
Ps.update();
console.log(Math.round(window.devicePixelRatio * 100));
if (Ps) Ps.update();
// console.log(Math.round(window.devicePixelRatio * 100));
let div = document.getElementById("div_selected_image");
if (div) {
let height = div.parentNode.clientHeight - div.previousElementSibling.clientHeight - 20 + "px";
@ -475,7 +636,8 @@ window.onresize = function() {
};
function getTranslation() {
if (shorLang != "en") {
// gets translation for current language
if (shortLang != "en") {
makeRequest('./translations/langs.json').then(
function(response) {
let arr = JSON.parse(response);
@ -485,7 +647,7 @@ function getTranslation() {
if (file == lang) {
fullName = file;
break;
} else if (file.split('-')[0] == shorLang) {
} else if (file.split('-')[0] == shortLang) {
shortName = file;
}
}
@ -497,7 +659,7 @@ function getTranslation() {
onTranslate();
},
function(err) {
console.error(err);
createError(new Error('Cannot load translation for current language.'));
showMarketplace();
}
);
@ -506,7 +668,7 @@ function getTranslation() {
}
},
function(err) {
console.error(err);
createError(err);
showMarketplace();
}
);
@ -514,6 +676,7 @@ function getTranslation() {
};
function onTranslate() {
// translates elements on current language
elements.linkNewPlugin.innerHTML = translate["Submit your own plugin"];
elements.btnMyPlugins.innerHTML = translate["My plugins"];
elements.btnMarketplace.innerHTML = translate["Marketplace"];
@ -535,6 +698,8 @@ function onTranslate() {
};
function showMarketplace() {
// show main window to user
elements.divBody.classList.remove('hidden');
elements.divHeader.classList.remove('hidden');
// убираем пока шапку, так как в плагине есть своя
// elements.divHeader.classList.remove('hidden');
};

View File

@ -7,14 +7,18 @@
"Install": "Nainstalovat",
"Remove": "Odstranit",
"Update": "Aktualizace",
"Offered by" : "Nabízí",
"Offered by": "Nabízí",
"Overview": "Přehled",
"Info & Support": "Informace A Podpora",
"Learn how to use": "Naučte se používat",
"the plugin in" : "plugin v",
"the plugin in": "plugin v",
"Contribute": "Přispět",
"to the plugin developmen or report an issue on" : "k plugin developmen nebo nahlásit problém na",
"to the plugin developmen or report an issue on": "k plugin developmen nebo nahlásit problém na",
"Get help": "Získejte pomoc",
"with the plugin functionality on our forum." : "s funkcí pluginu na našem fóru.",
"Create a new plugin using" : "Vytvořte nový plugin pomocí"
"with the plugin functionality on our forum.": "s funkcí pluginu na našem fóru.",
"Create a new plugin using": "Vytvořte nový plugin pomocí",
"Loading": "Načítání",
"Installation": "Instalace",
"Updating": "Aktualizace",
"Removal": "Odstranění"
}

View File

@ -7,14 +7,18 @@
"Install": "Installieren",
"Remove": "Entfernen",
"Update": "Actualizar",
"Offered by" : "Angeboten von",
"Offered by": "Angeboten von",
"Overview": "Überblick",
"Info & Support": "Infos & Unterstützung",
"Learn how to use": "Erfahren Sie, wie Sie es verwenden",
"the plugin in" : "das Plugin in",
"the plugin in": "das Plugin in",
"Contribute": "Beitragen",
"to the plugin developmen or report an issue on" : "an die Plugin-Entwickler oder melden Sie ein Problem auf",
"to the plugin developmen or report an issue on": "an die Plugin-Entwickler oder melden Sie ein Problem auf",
"Get help": "Hilfe erhalten",
"with the plugin functionality on our forum." : "mit der Plugin-Funktionalität in unserem Forum.",
"Create a new plugin using" : "Erstellen Sie ein neues Plugin mit"
"with the plugin functionality on our forum.": "mit der Plugin-Funktionalität in unserem Forum.",
"Create a new plugin using": "Erstellen Sie ein neues Plugin mit",
"Loading": "Laden",
"Installation": "Installation",
"Updating": "Aktualisieren",
"Removal": "Entfernung"
}

View File

@ -7,14 +7,18 @@
"Install": "Instalar",
"Remove": "Quitar",
"Update": "Actualizar",
"Offered by" : "Ofrecido por",
"Offered by": "Ofrecido por",
"Overview": "Visión general",
"Info & Support": "Información y Soporte",
"Learn how to use": "Aprenda a usar",
"the plugin in" : "el complemento en",
"the plugin in": "el complemento en",
"Contribute": "Contribuya",
"to the plugin developmen or report an issue on" : "a los desarrolladores de complementos o informe un problema en",
"to the plugin developmen or report an issue on": "a los desarrolladores de complementos o informe un problema en",
"Get help": "Obtenga ayuda",
"with the plugin functionality on our forum." : "con la funcionalidad del complemento en nuestro foro.",
"Create a new plugin using" : "Crear un nuevo plugin usando"
"with the plugin functionality on our forum.": "con la funcionalidad del complemento en nuestro foro.",
"Create a new plugin using": "Crear un nuevo plugin usando",
"Loading": "Carga",
"Installation": "Instalación",
"Updating": "Actualizar",
"Removal": "Eliminación"
}

View File

@ -7,14 +7,18 @@
"Install": "Installer",
"Remove": "Supprimer",
"Update": "Mettre",
"Offered by" : "Offert par",
"Offered by": "Offert par",
"Overview": "Aperçu",
"Info & Support": "Infos & Support",
"Learn how to use": "Apprenez à utiliser",
"the plugin in" : "le plugin dans",
"the plugin in": "le plugin dans",
"Contribute": "Contribuez",
"to the plugin developmen or report an issue on" : "aux développeurs du plugin ou signalez un problème sur",
"to the plugin developmen or report an issue on": "aux développeurs du plugin ou signalez un problème sur",
"Get help": "Obtenir de l'aide",
"with the plugin functionality on our forum." : "avec la fonctionnalité du plugin sur notre forum.",
"Create a new plugin using" : "Créer un nouveau plugin en utilisant"
"with the plugin functionality on our forum.": "avec la fonctionnalité du plugin sur notre forum.",
"Create a new plugin using": "Créer un nouveau plugin en utilisant",
"Loading": "Chargement",
"Installation": "Installation",
"Updating": "Mettre",
"Removal": "Suppression"
}

View File

@ -7,14 +7,18 @@
"Install": "Установить",
"Remove": "Удалить",
"Update": "Обновить",
"Offered by" : "Предложено",
"Offered by": "Предложено",
"Overview": "Обзор",
"Info & Support": "Информация & Поддержка",
"Learn how to use": "Узнайте как использовать",
"the plugin in" : "плагин в",
"the plugin in": "плагин в",
"Contribute": "Внесите свой вклад",
"to the plugin developmen or report an issue on" : "в разработку плагина или сообщите о проблеме на",
"to the plugin developmen or report an issue on": "в разработку плагина или сообщите о проблеме на",
"Get help": "Получите помощь",
"with the plugin functionality on our forum." : "с функциональностью плагина на нашем форуме.",
"Create a new plugin using" : "Создайте новый плагин используя"
"with the plugin functionality on our forum.": "с функциональностью плагина на нашем форуме.",
"Create a new plugin using": "Создайте новый плагин используя",
"Loading": "Загрузка",
"Installation": "Установка",
"Updating": "Обновление",
"Removal": "Удаление"
}