123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- // Текущее состояние страницы
- // 0 - режим редактирования
- // 1 - режим просмотра превью
- var current_state = 0;
- var markup_area = $('#markuparea');
- var preview_area = $('#preview');
- var saveButton = $('#saveMarkupButton');
- $(document).ready(function() {
- textAreaAdjust(document.getElementById("markuparea"));
- $("#saveMarkupButton").click(function(e) {
- saveMarkup();
- });
- // Сохранение на Ctrl+S
- document.addEventListener("keydown", function(e) {
- if (e.keyCode === 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
- e.preventDefault();
- saveMarkup();
- }
- }, false);
- // Вставка картинок на Ctrl+V
- // https://stackoverflow.com/a/6338207
- $("#markuparea").on('paste', function (e) {
- let items = (e.clipboardData || e.originalEvent.clipboardData).items;
- for (let index in items) {
- let item = items[index];
- if (item.kind === 'file') {
- // Загрузка файла через jQuery AJAX
- // https://stackoverflow.com/a/13333478
- var fd = new FormData();
- fd.append('file', item.getAsFile());
- $.ajax({
- url: "/autogost/upload-image",
- type: "post",
- data: fd,
- processData: false,
- contentType: false,
- success: function (response) {
- response = JSON.parse(response);
- if (response.ok) {
- const line = "?"+response.filename+":"+"Подпись изображения";
- markup_area.val(markup_area.val() + line);
- }
- }
- });
- }
- }
- });
-
- $("#switchPreview").click(function() {
- $("#switchMarkup").removeClass('selected');
- $("#switchPreview").addClass('selected');
- preview_area.html('<div class="loader"></div>');
- markup_area.hide();
- preview_area.show();
- saveMarkup();
- updatePreview();
- });
- $("#switchMarkup").click(function() {
- $("#switchMarkup").addClass('selected');
- $("#switchPreview").removeClass('selected');
- markup_area.show();
- preview_area.hide();
- saveMarkup();
- });
- $("#printReport").click(function() {
- saveMarkup();
- updatePreview(true);
- })
- });
- // При печати текста заставляет textbox расширяться
- function textAreaAdjust(element) {
- element.style.height = "1px";
- element.style.height = (25+element.scrollHeight)+"px";
- }
- function updatePreview(then_print=false) {
- const str = document.location.toString();
- const slash_idx = str.lastIndexOf('/');
- const report_id = str.substring(slash_idx + 1);
- $.post(
- "/autogost/gethtml",
- {
- report_id: report_id
- },
- function (data, textStatus, xhr) {
- $("#preview").html(data);
- if (then_print) {
- window.print();
- }
- }
- );
- }
- // Сохраняет разметку для данного отчёта
- function saveMarkup() {
- $.ajax({
- url: "/reports/update",
- type: "post",
- data: {
- id: $("#idInput").val(),
- markup: $("#markuparea").val()
- },
- success: function() {
- saveButton.blur();
- }
- });
- }
|