1+
2+ #Область ОписаниеПеременных
3+
4+ #КонецОбласти
5+
6+ #Область ОбработчикиСобытийФормы
7+
8+ &НаСервере
9+ Процедура ПриСозданииНаСервере (Отказ , СтандартнаяОбработка )
10+ УстановитьТекстПоляИзменений();
11+ ЗаполнитьТекущуюВерсию();
12+ ЗаполнитьАктуальнуюВерсиюИОписаниеИзменений();
13+ УстановитьНеобходимостьОбновления();
14+ КонецПроцедуры
15+
16+
17+ #КонецОбласти
18+
19+ #Область ОбработчикиСобытийЭлементовШапкиФормы
20+
21+ &НаКлиенте
22+ Процедура ПолеИзмененийДокументСформирован (Элемент )
23+ Если Не НеобходимостьОбновления Тогда
24+ Возврат ;
25+ КонецЕсли ;
26+
27+ View = Элемент.Документ.defaultView;
28+ View.addText("preview" , ОписаниеИзменений);
29+ View.markdownConvert();
30+ КонецПроцедуры
31+
32+
33+ &НаКлиенте
34+ Процедура ПолеИзмененийПриНажатии (Элемент , ДанныеСобытия , СтандартнаяОбработка )
35+ СтандартнаяОбработка = Ложь ;
36+
37+ Если ЗначениеЗаполнено (ДанныеСобытия.href) Тогда
38+ УИ_ОбщегоНазначенияКлиент.ОткрытьНавигационнуюСсылку(ДанныеСобытия.href);
39+ КонецЕсли ;
40+ КонецПроцедуры
41+ #КонецОбласти
42+
43+ #Область ОбработчикиСобытийЭлементовТаблицыФормы //<ИмяТаблицыФормы>
44+
45+ // Код процедур и функций
46+
47+ #КонецОбласти
48+
49+ #Область ОбработчикиКомандФормы
50+
151&НаКлиенте
252Процедура Обновить (Команда )
353 Если ОбновлениеЧерезСкачиваниеФайлаПоставки Тогда
757 КонецЕсли ;
858КонецПроцедуры
959
60+
61+ #КонецОбласти
62+
63+ #Область СлужебныеПроцедурыИФункции
64+
65+ &НаСервере
66+ Процедура УстановитьТекстПоляИзменений ()
67+ БиблиотекаShowdown = ПолучитьОбщийМакет ("УИ_showdown" );
68+ АдресБиблиотеки = ПоместитьВоВременноеХранилище (БиблиотекаShowdown, УникальныйИдентификатор);
69+
70+ СтильCSS =
71+ "
72+ |h2, .wiki h1 {font-size: 20px;}
73+ |h3, .wiki h2 {font-size: 16px;}
74+ |h4, .wiki h3 {font-size: 13px;}
75+ |
76+ |
77+ |/***** Wiki *****/
78+ |div.wiki table {
79+ | border-collapse: collapse;
80+ | margin-bottom: 1em;
81+ |}
82+ |
83+ |div.wiki table, div.wiki td, div.wiki th {
84+ | border: 1px solid #bbb;
85+ | padding: 4px;
86+ |}
87+ |
88+ |div.wiki th{
89+ | background-color: #EEEEEE;
90+ |}
91+ |
92+ |div.wiki .wiki-class-noborder, div.wiki .wiki-class-noborder td, div.wiki .wiki-class-noborder th {border:0;}
93+ |
94+ |div.wiki .external {
95+ | background-position: 0% 60%;
96+ | background-repeat: no-repeat;
97+ | padding-left: 12px;
98+ |}
99+ |
100+ |div.wiki a {word-wrap: break-word;}
101+ |div.wiki a.new {color: #b73535;}
102+ |
103+ |div.wiki ul, div.wiki ol {margin-bottom:1em;}
104+ |div.wiki li>ul, div.wiki li>ol {margin-bottom: 0;}
105+ |
106+ |div.wiki pre {
107+ | margin: 1em 1em 1em 1.6em;
108+ | padding: 8px;
109+ // | background-color: #fafafa;
110+ | border: 1px solid #e2e2e2;
111+ | border-radius: 3px;
112+ | width:auto;
113+ | overflow-x: auto;
114+ | overflow-y: hidden;
115+ |}
116+ |
117+ |div.wiki ul.toc {
118+ | background-color: #ffffdd;
119+ | border: 1px solid #e4e4e4;
120+ | padding: 4px;
121+ | line-height: 1.2em;
122+ | margin-bottom: 12px;
123+ | margin-right: 12px;
124+ | margin-left: 0;
125+ | display: table
126+ |}
127+ |* html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
128+ |
129+ |div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
130+ |div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
131+ |div.wiki ul.toc ul { margin: 0; padding: 0; }
132+ |div.wiki ul.toc li {list-style-type:none; margin: 0; font-size:12px;}
133+ |div.wiki ul.toc>li:first-child {margin-bottom: .5em; color: #777;}
134+ |div.wiki ul.toc li li {margin-left: 1.5em; font-size:10px;}
135+ |div.wiki ul.toc a {
136+ | font-size: 0.9em;
137+ | font-weight: normal;
138+ | text-decoration: none;
139+ | color: #606060;
140+ |}
141+ |div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
142+ |
143+ |a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
144+ |a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
145+ |h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
146+ |
147+ |div.wiki img {vertical-align:middle; max-width:100%;}
148+ |blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 0;}
149+ |blockquote blockquote { margin-left: 0;}
150+ |
151+ |" ;
152+
153+ ПолеИзменений =
154+ "<html>
155+ |<head>
156+ | <meta charset="" UTF-8"" >
157+ | <style>
158+ | html {
159+ | word-break: break-all;
160+ | }
161+ | " + СтильCSS + "
162+ | </style>
163+ |
164+ |</head>
165+ |
166+ |<body>
167+ | <div id="" wiki-container"" ></div>
168+ | <button id="" interactionButton"" style="" display: none"" >Кнопка взаимодействия</button>
169+ | <script src="" " + АдресБиблиотеки+ """ type="" text/javascript"" charset="" utf-8"" ></script>
170+ | <script>
171+ |
172+ | var markdownTexts={};
173+ | var converter = new showdown.Converter();
174+ | converter.setFlavor('github');
175+ |
176+ | function clearTexts(){
177+ | markdownTexts={};
178+ | }
179+ |
180+ | function addText(key, text){
181+ | markdownTexts[key]=text;
182+ | }
183+ | function deleteText(key){
184+ | delete markdownTexts[key];
185+ | }
186+ | function convertOneText(key,text){
187+ |
188+ | var newdiv = document.createElement('div');
189+ | newdiv.className = 'wiki';
190+ | newdiv.id = key;
191+ |
192+ | newdiv.innerHTML = converter.makeHtml(text);
193+ |
194+ | return newdiv;
195+ | }
196+ |
197+ | function mdToHtml(text){
198+ | return converter.makeHtml(text);
199+ | }
200+ | function htmlToMd(text){
201+ | return converter.makeMarkdown(text);
202+ | }
203+ | function markdownConvert(){
204+ | var container=document.getElementById('wiki-container');
205+ | container.innerHTML='';
206+ |
207+ | for (var key in markdownTexts) {
208+ | if (markdownTexts.hasOwnProperty(key)) {
209+ | var markText = markdownTexts[key];
210+ |
211+ | var newdiv=convertOneText(key,markText);
212+ |
213+ | container.appendChild(newdiv);
214+ | }
215+ | }
216+ | var elems= document.getElementsByTagName('code');
217+ |
218+ | for(var i = 0; i < elems.length; i++) {
219+ | hljs.highlightBlock(elems[i]);
220+ | }
221+ |
222+ | }
223+ |
224+ | </script>
225+
226+ |</body>
227+ |
228+ |
229+ |</html>
230+ |" ;
231+
232+ КонецПроцедуры
233+
234+
235+
10236&НаКлиенте
11237Процедура ОбновитьЧерезСкачиваниеФайла ()
12238 ИмяФайла = УИ_ОбщегоНазначенияКлиентСервер.ИмяФайлаСкачивания();
146372 МассивРелизов = УИ_КоннекторHTTP.GetJson(АдресЗапроса);
147373
148374 МаксимальныйРелиз = "0.0.0" ;
149- СоответствиеОписанияРелизов = Новый Соответствие;
375+ // СоответствиеОписанияРелизов = Новый Соответствие;
376+
377+ ОписаниеИзменений = "" ;
150378
151379 Для Каждого ТекРелиз Из МассивРелизов Цикл
152380 ВерсияТекРелиза = СтрЗаменить (ТекРелиз["tag_name" ], "v" , "" );
153381
154382 Если УИ_ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(ВерсияТекРелиза, ТекущаяВерсия) > 0 Тогда
155- СоответствиеОписанияРелизов.Вставить(ВерсияТекРелиза, ТекРелиз);
383+ // СоответствиеОписанияРелизов.Вставить(ВерсияТекРелиза, ТекРелиз);
384+
385+ ОписаниеИзменений = ОписаниеИзменений + "# [" + ВерсияТекРелиза+ "](" + ТекРелиз["html_url" ]+ ")" + Символы.ПС;
386+ ОписаниеИзменений = ОписаниеИзменений + ТекРелиз["body" ] + Символы.ПС;
156387 КонецЕсли ;
157388
158389 Если УИ_ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(ВерсияТекРелиза, МаксимальныйРелиз) <= 0 Тогда
175406 Прервать ;
176407 КонецЦикла ;
177408 КонецЕсли ;
178- КонецЦикла ;
179409
180- АктуальнаяВерсия = МаксимальныйРелиз;
181410
182- ОписаниеИзменений = "" ;
183- Для Каждого РелизОписания Из СоответствиеОписанияРелизов Цикл
184- ОписаниеИзменений = ОписаниеИзменений + РелизОписания.Ключ + Символы.ПС;
185- ОписаниеИзменений = ОписаниеИзменений + РелизОписания.Значение["body" ] + Символы.ПС;
186411 КонецЦикла ;
412+
413+ АктуальнаяВерсия = МаксимальныйРелиз;
187414КонецПроцедуры
188415
189416&НаСервере
193420 КонецЕсли ;
194421
195422 Элементы.ФормаОбновить.Видимость = НеобходимостьОбновления;
196- Элементы.ОписаниеИзменений .Видимость = НеобходимостьОбновления;
423+ Элементы.ПолеИзменений .Видимость = НеобходимостьОбновления;
197424
198425 Если ОбновлениеЧерезСкачиваниеФайлаПоставки Тогда
199426 Элементы.ФормаОбновить.Заголовок= "Скачать" ;
200427 КонецЕсли ;
201428КонецПроцедуры
202429
203- &НаСервере
204- Процедура ПриСозданииНаСервере (Отказ , СтандартнаяОбработка )
205- ЗаполнитьТекущуюВерсию();
206- ЗаполнитьАктуальнуюВерсиюИОписаниеИзменений();
207- УстановитьНеобходимостьОбновления();
208- КонецПроцедуры
430+
431+ #КонецОбласти
432+
0 commit comments