initial commit
100
wwwroot/css/common.css
Normal file
@@ -0,0 +1,100 @@
|
||||
|
||||
:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.page-title-color {
|
||||
color: #b32d00; /* #b74040; <20>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
}
|
||||
|
||||
/* Footer styles */
|
||||
|
||||
.footer {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
|
||||
/* Header styles */
|
||||
|
||||
.navbar {
|
||||
background-color: #355b9c; /* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> = title <20>1d4a9b, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> #e3f2fd*/
|
||||
}
|
||||
|
||||
.navbar-brand > img {
|
||||
height: 2em;
|
||||
}
|
||||
|
||||
.navbar-brand > span {
|
||||
font-size: smaller;
|
||||
margin-left: 10px;
|
||||
color: #04763a; /* <20>. <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.navbar-brand:hover > span {
|
||||
font-size: smaller;
|
||||
margin-left: 10px;
|
||||
color: #1560a1; /* <20>.<2E><><EFBFBD> */
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nav-link, .nav-link:visited, .nav-link:active {
|
||||
color: #04763a !important; /* <20>.<2E><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
color: #1560a1 !important; /* <20>.<2E><><EFBFBD> */
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Navigation tree (sitemap) styles */
|
||||
|
||||
.nav_tree .nav_tree_item_container:first-child {
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
|
||||
.nav_tree_item_container:hover {
|
||||
background-color: antiquewhite; /* #faebd7 - <20><>.<2E><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
}
|
||||
|
||||
.nav_tree_item_container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.nav_tree_item_container span.indent {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.nav_tree_item_data {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
align-items: flex-start;
|
||||
flex-flow: column nowrap;
|
||||
padding: 0.25rem 0.5rem;
|
||||
border-left: 1px solid rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
|
||||
.nav_tree_item_data span {
|
||||
color: #033;
|
||||
font-size: smaller;
|
||||
font-weight: bold;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.nav_tree_item_data a,
|
||||
.nav_tree_item_data a:visited {
|
||||
color: #033;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nav_tree_item_data a:hover {
|
||||
color: #099;
|
||||
text-decoration: underline;
|
||||
}
|
||||
141
wwwroot/css/pdf_view.css
Normal file
@@ -0,0 +1,141 @@
|
||||
body, main {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.pdf-page-link {
|
||||
display: block !important;
|
||||
width: 135px;
|
||||
height: 250px;
|
||||
position: relative;
|
||||
border: 1px solid #ccc;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.pdf-page-link.selected,
|
||||
.pdf-page-link.selected:active,
|
||||
.pdf-page-link.selected:hover {
|
||||
border: 1px solid #f96;
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.pdf-page-link:hover {
|
||||
border: 1px solid #9f9;
|
||||
}
|
||||
|
||||
.pdf-page-link:active {
|
||||
border: 1px solid #cfc;
|
||||
}
|
||||
|
||||
.pdf-page-link > .pdf-page-thumb {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.pdf-page-link > .pdf-page-label {
|
||||
display: inline;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
text-align: center;
|
||||
color: #000;
|
||||
background-color: #ccc;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pdf-page-link.selected > .pdf-page-label,
|
||||
.pdf-page-link.selected:active > .pdf-page-label,
|
||||
.pdf-page-link.selected:hover > .pdf-page-label {
|
||||
background-color: #f96;
|
||||
}
|
||||
|
||||
.pdf-page-link:hover > .pdf-page-label {
|
||||
background-color: #9f9;
|
||||
}
|
||||
|
||||
.pdf-page-link:active > .pdf-page-label {
|
||||
background-color: #cfc;
|
||||
}
|
||||
|
||||
.full-width {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.full-height {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.full-view-height {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.no-padding {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.vlayout {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.hlayout {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.layout-scale-1 {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.header {
|
||||
align-self: stretch;
|
||||
background-color: #444;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
padding: 10px;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.header-info-bar {
|
||||
flex-grow: 1;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.header-paging-bar {
|
||||
text-align: center;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.overflow-auto {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.navigation-bar {
|
||||
align-self: stretch;
|
||||
overflow: auto;
|
||||
flex-grow: 0;
|
||||
width: 160px;
|
||||
min-width: 160px;
|
||||
background-color: #444;
|
||||
}
|
||||
|
||||
.content-area {
|
||||
background-color: #999;
|
||||
align-self: stretch;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
}
|
||||
11228
wwwroot/css/vendor/bootstrap.css
vendored
Normal file
1
wwwroot/css/vendor/bootstrap.css.map
vendored
Normal file
7937
wwwroot/css/vendor/fontawesome/css/all.css
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-brands-400.ttf
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-brands-400.woff2
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-regular-400.ttf
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-regular-400.woff2
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-solid-900.ttf
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-solid-900.woff2
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-v4compatibility.ttf
vendored
Normal file
BIN
wwwroot/css/vendor/fontawesome/webfonts/fa-v4compatibility.woff2
vendored
Normal file
BIN
wwwroot/img/vtu/book_3.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
wwwroot/img/vtu/book_4.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
wwwroot/img/vtu/book_47.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
wwwroot/img/vtu/book_48.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
wwwroot/img/vtu/logo_sm.png
Normal file
|
After Width: | Height: | Size: 228 KiB |
BIN
wwwroot/img/vtu/logo_sm_with_text.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
wwwroot/img/vtu/logo_sm_with_text_mae.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
wwwroot/img/vtu/logo_sm_with_text_r.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
wwwroot/img/vtu/logo_sm_with_text_r.psd
Normal file
BIN
wwwroot/img/vtu/logo_sm_with_text_rr.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
wwwroot/img/vtu/logo_sm_with_text_rr.psd
Normal file
BIN
wwwroot/img/vtu/main_bairaci_sm.png
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
wwwroot/img/zagore/book_179.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
wwwroot/img/zagore/book_180.png
Normal file
|
After Width: | Height: | Size: 344 KiB |
BIN
wwwroot/img/zagore/book_181.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
wwwroot/img/zagore/book_182.png
Normal file
|
After Width: | Height: | Size: 810 KiB |
BIN
wwwroot/img/zagore/book_47.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
wwwroot/img/zagore/book_48.png
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
BIN
wwwroot/img/zagore/logo_sm.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
wwwroot/img/zagore/logo_sm_with_text.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
wwwroot/img/zagore/main_bairaci_sm.png
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
wwwroot/img/zagore/z3.jpeg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
174
wwwroot/js/common.js
Normal file
@@ -0,0 +1,174 @@
|
||||
'use strict';
|
||||
|
||||
$.defaultHandlers = {
|
||||
|
||||
disableSubmitButton: function( form , disable) {
|
||||
form.find(":submit").attr("disabled", disable);
|
||||
},
|
||||
|
||||
startWait: function( ) {
|
||||
$('#pleaseWaitDialog').modal('show');
|
||||
},
|
||||
|
||||
endWait: function( ) {
|
||||
$('#pleaseWaitDialog').modal('hide');
|
||||
},
|
||||
|
||||
showErrorMessage: function( form , message ) {
|
||||
var div = form.find(".form-error-message");
|
||||
if (div.length) {
|
||||
div.show();
|
||||
div.html(message);
|
||||
} else {
|
||||
alert(message);
|
||||
}
|
||||
},
|
||||
|
||||
hideErrorMessage: function( form ) {
|
||||
var div = form.find(".form-error-message");
|
||||
if (div.length)
|
||||
div.hide();
|
||||
},
|
||||
|
||||
validateResponse: function( response ) {
|
||||
if (!response)
|
||||
return { Success: false, ErrorMessage: "Системна грешка." };
|
||||
return {
|
||||
Success: response.Success ?? false,
|
||||
Result: response.Result ,
|
||||
ErrorMessage: response.ErrorMessage ?? "Системна грешка."
|
||||
};
|
||||
},
|
||||
|
||||
postProcessSuccess: function( caller , response ) {
|
||||
|
||||
// if data-navigate="" is set, go there
|
||||
var navigate_url = caller.data("navigate");
|
||||
if (navigate_url) {
|
||||
window.location = navigate_url.replace(':response', response);
|
||||
return;
|
||||
}
|
||||
|
||||
// fallback: refresh the page
|
||||
window.location.reload();
|
||||
} ,
|
||||
|
||||
processResponse: function( form , response ) {
|
||||
var result = $.defaultHandlers.validateResponse( response );
|
||||
if (!result.Success) {
|
||||
$.defaultHandlers.showErrorMessage(form, result.ErrorMessage);
|
||||
return;
|
||||
}
|
||||
$.defaultHandlers.postProcessSuccess(form, result.Result);
|
||||
},
|
||||
|
||||
submitHandler: function( element , event ) {
|
||||
event.preventDefault();
|
||||
|
||||
var form = $(element);
|
||||
$.defaultHandlers.hideErrorMessage(form);
|
||||
$.defaultHandlers.disableSubmitButton(form, true);
|
||||
$.defaultHandlers.startWait();
|
||||
$.ajax({
|
||||
url: form.data("service"),
|
||||
type: 'POST',
|
||||
data: new FormData(element),
|
||||
async: true,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
enctype: 'multipart/form-data',
|
||||
processData: false,
|
||||
success: function( response ) {
|
||||
$.defaultHandlers.disableSubmitButton(form, false);
|
||||
$.defaultHandlers.processResponse(form, response);
|
||||
$.defaultHandlers.endWait();
|
||||
},
|
||||
error: function( xhr , status , error ) {
|
||||
$.defaultHandlers.disableSubmitButton(form, false);
|
||||
$.defaultHandlers.showErrorMessage(form, "XHR:" + xhr.responseText + "\n<br>Status: " + status + "\n<br>Error: " + error);
|
||||
$.defaultHandlers.endWait();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
} ,
|
||||
|
||||
processRestLinkResponse: function( sender , response ) {
|
||||
var result = $.defaultHandlers.validateResponse( response );
|
||||
if (!result.Success) {
|
||||
alert( result.ErrorMessage );
|
||||
return;
|
||||
}
|
||||
$.defaultHandlers.postProcessSuccess(sender, result.Result);
|
||||
} ,
|
||||
|
||||
restLinkHandler: function( event ) {
|
||||
event.preventDefault();
|
||||
|
||||
var sender = $(event.target);
|
||||
sender.attr("disabled", true);
|
||||
$.defaultHandlers.startWait();
|
||||
$.ajax({
|
||||
url: sender.data("service"),
|
||||
type: 'GET',
|
||||
async: true,
|
||||
cache: false,
|
||||
processData: false,
|
||||
success: function( response ) {
|
||||
sender.attr("disabled", false);
|
||||
$.defaultHandlers.processRestLinkResponse(sender, response);
|
||||
$.defaultHandlers.endWait();
|
||||
},
|
||||
error: function( xhr , status , error ) {
|
||||
sender.attr("disabled", false);
|
||||
alert("XHR:" + xhr.responseText + "\n<br>Status: " + status + "\n<br>Error: " + error);
|
||||
$.defaultHandlers.endWait();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function( ) {
|
||||
|
||||
//$("#pleaseWaitDialog").modal({ backdrop: 'static', keyboard: false });
|
||||
//$("#pleaseWaitDialog").modal({ show:true, backdrop: 'static', keyboard: false });
|
||||
// $("#pleaseWaitDialog").modal("show");
|
||||
|
||||
$('#pleaseWaitDialog').modal({ show: true, backdrop: 'static', keyboard: false });
|
||||
// setTimeout(function () { $('#pleaseWaitDialog').modal('show'); }, 1000);
|
||||
// setTimeout(function () { $('#pleaseWaitDialog').modal('hide'); }, 3000);
|
||||
|
||||
$('form.js_default').each(function( ) {
|
||||
$(this).validate({});
|
||||
});
|
||||
|
||||
$('form.js_service').each(function () {
|
||||
$(this).validate({ submitHandler: $.defaultHandlers.submitHandler });
|
||||
});
|
||||
|
||||
$('a.js_service').click(
|
||||
$.defaultHandlers.restLinkHandler
|
||||
);
|
||||
|
||||
$('button.js_service').click(
|
||||
$.defaultHandlers.restLinkHandler
|
||||
);
|
||||
|
||||
$('a.toggle_dialog').click(function( e ) {
|
||||
$("#" + $(this).data('hide')).modal("hide");
|
||||
var dialog = $("#" + $(this).data('show'));
|
||||
dialog.modal("show");
|
||||
dialog.find('[autofocus]').focus();
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
$('a.js_dialog').click(function( e ) {
|
||||
var dialog = $('#' + $(this).data('target'));
|
||||
dialog.modal("toggle");
|
||||
dialog.find('[autofocus]').focus();
|
||||
e.preventDefault();
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
23
wwwroot/js/pdf_view.js
Normal file
@@ -0,0 +1,23 @@
|
||||
'use strict';
|
||||
|
||||
$(document).ready(function () {
|
||||
$('a.pdf-page-link').click(function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if ($(this).hasClass('selected')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$('a.pdf-page-link').each(function (a) {
|
||||
$(this).removeClass("selected");
|
||||
});
|
||||
|
||||
$(this).addClass("selected");
|
||||
|
||||
$("#current_page").html($(this).data('page'));
|
||||
$("#page_preview").attr("src", $(this).attr('href'));
|
||||
$("#content_div").animate({ scrollTop: 0 });
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
7
wwwroot/js/vendor/bootstrap.bundle.min.js
vendored
Normal file
1
wwwroot/js/vendor/bootstrap.bundle.min.js.map
vendored
Normal file
2
wwwroot/js/vendor/jquery-3.6.0.min.js
vendored
Normal file
1
wwwroot/js/vendor/jquery-3.6.0.min.map
vendored
Normal file
4
wwwroot/js/vendor/jquery.validate.min.js
vendored
Normal file
4
wwwroot/js/vendor/messages_bg.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/*! jQuery Validation Plugin - v1.19.3 - 1/9/2021
|
||||
* https://jqueryvalidation.org/
|
||||
* Copyright (c) 2021 Jörn Zaefferer; Licensed MIT */
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Полето е задължително.",remote:"Моля, въведете правилната стойност.",email:"Моля, въведете валиден email.",url:"Моля, въведете валидно URL.",date:"Моля, въведете валидна дата.",dateISO:"Моля, въведете валидна дата (ISO).",number:"Моля, въведете валиден номер.",digits:"Моля, въведете само цифри.",creditcard:"Моля, въведете валиден номер на кредитна карта.",equalTo:"Моля, въведете същата стойност отново.",extension:"Моля, въведете стойност с валидно разширение.",maxlength:a.validator.format("Моля, въведете не повече от {0} символа."),minlength:a.validator.format("Моля, въведете поне {0} символа."),rangelength:a.validator.format("Моля, въведете стойност с дължина между {0} и {1} символа."),range:a.validator.format("Моля, въведете стойност между {0} и {1}."),max:a.validator.format("Моля, въведете стойност по-малка или равна на {0}."),min:a.validator.format("Моля, въведете стойност по-голяма или равна на {0}.")}),a});
|
||||