1
0
mirror of https://github.com/1C-Company/GitConverter.git synced 2025-02-11 13:25:40 +02:00

Добавлена команда установки состояния "Версия помещена" с

предупреждением
This commit is contained in:
Dmitriy Marmyshev 2018-04-28 11:34:17 +03:00
parent 70f5fe0235
commit 6d63bbf06e
2 changed files with 212 additions and 137 deletions

View File

@ -724,6 +724,35 @@
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
</items>
<items xsi:type="form:Button">
<name>СписокКонтекстноеМенюУстановитьСостояниеВерсияПомещена</name>
<id>89</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СписокКонтекстноеМенюУстановитьСостояниеВерсияПомещенаРасширеннаяПодсказка</name>
<id>90</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.УстановитьСостояниеВерсияПомещена</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
</items>
<items xsi:type="form:Button">
<name>СписокКонтекстноеМенюСброситьСостояние</name>
<id>87</id>
@ -1444,6 +1473,23 @@
</action>
<currentRowUse>DontUse</currentRowUse>
</formCommands>
<formCommands>
<name>УстановитьСостояниеВерсияПомещена</name>
<title>
<key>ru</key>
<value>Установить состояние &quot;Версия помещена&quot;</value>
</title>
<id>5</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>УстановитьСостояниеВерсияПомещена</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>

View File

@ -1,143 +1,172 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Отбор.Свойство("Владелец") Тогда
Элементы.Владелец.Видимость = Ложь;
КонецЕсли;
Состав.Параметры.УстановитьЗначениеПараметра("Ссылки", Справочники.ВерсииХранилища.ПустаяСсылка());
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Состав.Параметры.УстановитьЗначениеПараметра("Ссылки", Элементы.Список.ВыделенныеСтроки);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура УстановитьСостояниеВерсияПолучена(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ВерсияПолучена");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСостояниеВерсияВыгружена(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ВерсияВыгружена");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСостояниеМетаданныеЗагружены(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "МетаданныеЗагружены");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
&НаКлиенте
Процедура СброситьСостояние(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ПустаяСсылка");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура УстановитьСостояниеНаСервере(Знач ВыделенныеСтроки, Знач Состояние)
Если НЕ ЗначениеЗаполнено(Состояние) ИЛИ ВыделенныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если Состояние = "ПустаяСсылка" Тогда
СостояниеСсылка = Перечисления.СостоянияВерсии.ПустаяСсылка();
Иначе
СостояниеСсылка = Перечисления.СостоянияВерсии[Состояние];
КонецЕсли;
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindowsСервер = (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64);
Для Каждого Ссылка Из ВыделенныеСтроки Цикл
ВерсияОбъект = Ссылка.ПолучитьОбъект();
УдалятьФайлы = ПроверитьНеобходимостьУдалятьФайлыВерсии(ВерсияОбъект, СостояниеСсылка);
ВерсияОбъект.Состояние = СостояниеСсылка;
ВерсияОбъект.ВыгрузкаИзменений = Ложь;
ВерсияОбъект.Записать();
// Зачистка файлов команд, если уже были сформированы
Если УдалятьФайлы Тогда
КаталогВыгрузкиВерсий = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВерсияОбъект.Владелец, "КаталогВыгрузкиВерсий");
КаталогВыгрузкиВерсий = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогВыгрузкиВерсий);
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Отбор.Свойство("Владелец") Тогда
Элементы.Владелец.Видимость = Ложь;
КонецЕсли;
Состав.Параметры.УстановитьЗначениеПараметра("Ссылки", Справочники.ВерсииХранилища.ПустаяСсылка());
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Состав.Параметры.УстановитьЗначениеПараметра("Ссылки", Элементы.Список.ВыделенныеСтроки);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура УстановитьСостояниеВерсияПолучена(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ВерсияПолучена");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСостояниеВерсияВыгружена(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ВерсияВыгружена");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСостояниеМетаданныеЗагружены(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "МетаданныеЗагружены");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСостояниеВерсияПомещена(Команда)
ТекстВопроса = НСтр("ru = 'Изменения по версиям не будут отражены в репозитории.
|Вы уверены, что необходимо установить состояние ""Версия помещена""?'");
ОписаниеОповещенияОЗавершении = Новый ОписаниеОповещения("УстановитьСостояниеВерсияПомещенаЗавершение", ЭтотОбъект, Неопределено);
Кнопки = Новый СписокЗначений();
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Уверен, установить ""Версия помещена""'"));
Кнопки.Добавить(КодВозвратаДиалога.Отмена);
ПоказатьВопрос(ОписаниеОповещенияОЗавершении, ТекстВопроса, Кнопки);
КонецПроцедуры
&НаКлиенте
Процедура СброситьСостояние(Команда)
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ПустаяСсылка");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура УстановитьСостояниеНаСервере(Знач ВыделенныеСтроки, Знач Состояние)
Если НЕ ЗначениеЗаполнено(Состояние) ИЛИ ВыделенныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если Состояние = "ПустаяСсылка" Тогда
СостояниеСсылка = Перечисления.СостоянияВерсии.ПустаяСсылка();
Иначе
СостояниеСсылка = Перечисления.СостоянияВерсии[Состояние];
КонецЕсли;
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindowsСервер = (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86
Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64);
Для Каждого Ссылка Из ВыделенныеСтроки Цикл
ВерсияОбъект = Ссылка.ПолучитьОбъект();
УдалятьФайлы = ПроверитьНеобходимостьУдалятьФайлыВерсии(ВерсияОбъект, СостояниеСсылка);
ВерсияОбъект.Состояние = СостояниеСсылка;
ВерсияОбъект.ВыгрузкаИзменений = Ложь;
ВерсияОбъект.Записать();
// Зачистка файлов команд, если уже были сформированы
Если УдалятьФайлы Тогда
КаталогВыгрузкиВерсий = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВерсияОбъект.Владелец, "КаталогВыгрузкиВерсий");
КаталогВыгрузкиВерсий = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогВыгрузкиВерсий);
ИмяФайлаКомандыGit = "git_command_" + Формат(ВерсияОбъект.Код, "ЧДЦ=; ЧГ=0") + ?(ЭтоWindowsСервер, ".bat", ".sh");
ИмяФайлКомментария = "git_comment_" + Формат(ВерсияОбъект.Код, "ЧДЦ=; ЧГ=0") + ".txt";
Файл = Новый Файл(ИмяФайлаКомандыGit);
ИмяФайлКомментария = "git_comment_" + Формат(ВерсияОбъект.Код, "ЧДЦ=; ЧГ=0") + ".txt";
Файл = Новый Файл(ИмяФайлаКомандыGit);
Если Файл.Существует() Тогда
УдалитьФайлы(ИмяФайлаКомандыGit);
КонецЕсли;
Файл = Новый Файл(ИмяФайлКомментария);
Если Файл.Существует() Тогда
УдалитьФайлы(ИмяФайлКомментария);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОповеститьОбИзмененииВыделенныеСтроки()
Для Каждого Ссылка Из Элементы.Список.ВыделенныеСтроки Цикл
ОповеститьОбИзменении(Ссылка);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьНеобходимостьУдалятьФайлыВерсии(ВерсияОбъект, НовоеСостояние)
КонецЕсли;
Файл = Новый Файл(ИмяФайлКомментария);
Если Файл.Существует() Тогда
УдалитьФайлы(ИмяФайлКомментария);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОповеститьОбИзмененииВыделенныеСтроки()
Для Каждого Ссылка Из Элементы.Список.ВыделенныеСтроки Цикл
ОповеститьОбИзменении(Ссылка);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьНеобходимостьУдалятьФайлыВерсии(ВерсияОбъект, НовоеСостояние)
Если НовоеСостояние = Перечисления.СостоянияВерсии.ПустаяСсылка() Тогда
Возврат Истина;
ИначеЕсли (ВерсияОбъект.Состояние = Перечисления.СостоянияВерсии.МетаданныеЗагружены
ИЛИ ВерсияОбъект.Состояние = Перечисления.СостоянияВерсии.НачалоКоммита
ИЛИ ВерсияОбъект.Состояние = Перечисления.СостоянияВерсии.ВерсияПомещена)
И НовоеСостояние <> Перечисления.СостоянияВерсии.МетаданныеЗагружены Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
#КонецОбласти
ИначеЕсли (ВерсияОбъект.Состояние = Перечисления.СостоянияВерсии.МетаданныеЗагружены
ИЛИ ВерсияОбъект.Состояние = Перечисления.СостоянияВерсии.НачалоКоммита
ИЛИ ВерсияОбъект.Состояние = Перечисления.СостоянияВерсии.ВерсияПомещена)
И НовоеСостояние <> Перечисления.СостоянияВерсии.МетаданныеЗагружены Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаКлиенте
Процедура УстановитьСостояниеВерсияПомещенаЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
УстановитьСостояниеНаСервере(Элементы.Список.ВыделенныеСтроки, "ВерсияПомещена");
ОповеститьОбИзмененииВыделенныеСтроки();
КонецПроцедуры
#КонецОбласти