kopia lustrzana https://github.com/inkstitch/inkstitch
rodzic
f5c85183d9
commit
05aaf36d6d
|
@ -285,8 +285,8 @@ $(function() {
|
||||||
|
|
||||||
/* Contendeditable Fields */
|
/* Contendeditable Fields */
|
||||||
|
|
||||||
$('[contenteditable="true"]').on('focusout', function() {
|
$('body').on('focusout', '[contenteditable="true"]:not(.footer-info)', function() {
|
||||||
/* change svg scale */
|
/* change svg scale */
|
||||||
var content = $(this).text();
|
var content = $(this).text();
|
||||||
var field_name = $(this).attr('data-field-name');
|
var field_name = $(this).attr('data-field-name');
|
||||||
if(field_name == 'svg-scale') {
|
if(field_name == 'svg-scale') {
|
||||||
|
@ -323,6 +323,9 @@ $(function() {
|
||||||
item.val(value).trigger('initialize');
|
item.val(value).trigger('initialize');
|
||||||
} else if (item.is('figure.inksimulation')) {
|
} else if (item.is('figure.inksimulation')) {
|
||||||
setSVGTransform(item, value);
|
setSVGTransform(item, value);
|
||||||
|
} else if (item.is('div.footer-info')) {
|
||||||
|
$('#footer-info-text').html(value);
|
||||||
|
item.html(value);
|
||||||
} else {
|
} else {
|
||||||
item.text(value);
|
item.text(value);
|
||||||
}
|
}
|
||||||
|
@ -336,7 +339,7 @@ $(function() {
|
||||||
}, 500);
|
}, 500);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('[contenteditable="true"]').keypress(function(e) {
|
$('body').on('keypress', '[contenteditable="true"]:not(#footer-info-text)', function(e) {
|
||||||
if (e.which == 13) {
|
if (e.which == 13) {
|
||||||
// pressing enter defocuses the element
|
// pressing enter defocuses the element
|
||||||
this.blur();
|
this.blur();
|
||||||
|
@ -347,6 +350,20 @@ $(function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#footer-info-text[contenteditable="true"]').keypress(function(e) {
|
||||||
|
if (e.which == 13) {
|
||||||
|
if($(this).find('div').length > 2) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#footer-info-text[contenteditable="true"]').focusout(function() {
|
||||||
|
updateFooter();
|
||||||
|
});
|
||||||
|
|
||||||
/* Settings Bar */
|
/* Settings Bar */
|
||||||
|
|
||||||
$('button.close').click(function() {
|
$('button.close').click(function() {
|
||||||
|
@ -397,6 +414,128 @@ $(function() {
|
||||||
$(this).addClass("active");
|
$(this).addClass("active");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Footer
|
||||||
|
function getEditMode(){
|
||||||
|
return $('#switch-mode').prop('checked');
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#switch-mode').change(function() {
|
||||||
|
var editMode = getEditMode();
|
||||||
|
if (editMode) {
|
||||||
|
$('#footer-info-text').text( $('#footer-info-text' ).html());
|
||||||
|
$('#tool-bar .edit-only').prop("disabled", true);
|
||||||
|
} else {
|
||||||
|
$('#footer-info-text').css('display', 'block');
|
||||||
|
var sourceText = $('#footer-info-text').text();
|
||||||
|
$('#footer-info-text').html( sourceText );
|
||||||
|
$('#tool-bar .tb-button.edit-only').prop('disabled', false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function updateFooter() {
|
||||||
|
var editMode = getEditMode();
|
||||||
|
var footerText = '';
|
||||||
|
if (editMode) {
|
||||||
|
footerText = $('#footer-info-text' ).text();
|
||||||
|
} else {
|
||||||
|
footerText = $('#footer-info-text').html();
|
||||||
|
}
|
||||||
|
$('.footer-info').html(footerText);
|
||||||
|
var content = $('.footer-info').html();
|
||||||
|
$.postJSON('/settings/footer-info', {value: content});
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatText(selection, value) {
|
||||||
|
var htmlMode = getEditMode();
|
||||||
|
if(!htmlMode) {
|
||||||
|
if(window.getSelection().toString()){
|
||||||
|
document.execCommand(selection, false, value);
|
||||||
|
updateFooter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#tb-bold').click(function(selection) {
|
||||||
|
formatText('bold');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tb-italic').click(function() {
|
||||||
|
formatText('italic');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tb-underline').click(function() {
|
||||||
|
formatText('underline');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tb-remove').click(function() {
|
||||||
|
formatText('removeFormat');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tb-hyperlink').click(function() {
|
||||||
|
formatText('createlink', 'tempurl');
|
||||||
|
$('#footer-url').css('display', 'block');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#url-ok').click(function() {
|
||||||
|
var link = $('#footer-link').val();
|
||||||
|
$('#footer-info-text a[href="tempurl"]').attr('href', link);
|
||||||
|
$('#footer-link').val('https://');
|
||||||
|
$('#footer-url').css('display', 'none');
|
||||||
|
updateFooter();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#url-cancel').click(function() {
|
||||||
|
$('#footer-info-text a[href="tempurl"]').contents().unwrap();
|
||||||
|
$('#footer-link').val('https://');
|
||||||
|
$('#footer-url').css('display', 'none');
|
||||||
|
updateFooter();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tb-mail').click(function() {
|
||||||
|
formatText('createlink', 'tempurl');
|
||||||
|
$('#footer-email').css('display', 'block');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#mail-ok').click(function() {
|
||||||
|
var link = 'mailto:' + $('#footer-mail').val();
|
||||||
|
$('#footer-info-text a[href="tempurl"]').attr('href', link);
|
||||||
|
$('#footer-mail').val('@');
|
||||||
|
$('#footer-email').css('display', 'none');
|
||||||
|
updateFooter();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#mail-cancel').click(function() {
|
||||||
|
$('#footer-info-text a[href="tempurl"]').contents().unwrap();
|
||||||
|
$('#footer-mail').val('@');
|
||||||
|
$('#footer-email').css('display', 'none');
|
||||||
|
updateFooter();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#tb-reset').click(function() {
|
||||||
|
$('#footer-reset').css('display', 'block');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#reset-ok').click(function() {
|
||||||
|
var htmlMode = getEditMode();
|
||||||
|
if(!htmlMode) {
|
||||||
|
$('#footer-info-text').html($('#footer-info-original').html());
|
||||||
|
} else {
|
||||||
|
$('#footer-info-text').text($('#footer-info-original').html());
|
||||||
|
}
|
||||||
|
$('#footer-reset').css('display', 'none');
|
||||||
|
updateFooter();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#reset-cancel').click(function() {
|
||||||
|
$('#footer-reset').css('display', 'none');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('body').on("click", ".edit-footer-link", function() {
|
||||||
|
$("button.settings").trigger("click");
|
||||||
|
$("#branding-tab").trigger("click");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// Paper Size
|
// Paper Size
|
||||||
$('select#printing-size').on('change initialize', function(){
|
$('select#printing-size').on('change initialize', function(){
|
||||||
$('.page').toggleClass('a4', $(this).find(':selected').val() == 'a4');
|
$('.page').toggleClass('a4', $(this).find(':selected').val() == 'a4');
|
||||||
|
@ -555,8 +694,8 @@ $(function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Logo
|
// Logo
|
||||||
$('#logo-picker').change(function(e) {
|
$(document).on("change", ".logo-picker", function(e) {
|
||||||
var file = e.originalEvent.currentTarget.files[0];
|
var file = e.currentTarget.files[0];
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
reader.onloadend = function() {
|
reader.onloadend = function() {
|
||||||
var data = reader.result;
|
var data = reader.result;
|
||||||
|
@ -580,6 +719,7 @@ $(function() {
|
||||||
if (logo.startsWith("data:")) {
|
if (logo.startsWith("data:")) {
|
||||||
settings["logo"] = logo;
|
settings["logo"] = logo;
|
||||||
}
|
}
|
||||||
|
settings["footer-info"] = $("[data-field-name='footer-info']").html();
|
||||||
|
|
||||||
settings["machine-speed"] = $("[data-field-name='machine-speed']").val();
|
settings["machine-speed"] = $("[data-field-name='machine-speed']").val();
|
||||||
settings["time-additional"] = $("[data-field-name='time-additional']").val();
|
settings["time-additional"] = $("[data-field-name='time-additional']").val();
|
||||||
|
|
|
@ -199,6 +199,12 @@ body {
|
||||||
border: 1px solid #413232;
|
border: 1px solid #413232;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#settings-ui button.tab {
|
||||||
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#settings-ui button.active {
|
#settings-ui button.active {
|
||||||
|
@ -256,6 +262,133 @@ body {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.logo-ui {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brandlogo-ui {
|
||||||
|
width: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brandlogo-ui img {
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-legend {
|
||||||
|
display: inline !important;
|
||||||
|
position: relative;
|
||||||
|
line-height: 30mm;
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid #413232;
|
||||||
|
background: white;
|
||||||
|
margin-left: 1em;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-footer {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer-info-text {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 5em;
|
||||||
|
border: 1px solid darkgrey;
|
||||||
|
padding: 12px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tool-bar .tb-button {
|
||||||
|
border: 1px solid darkgrey;
|
||||||
|
border-bottom: none;
|
||||||
|
margin-bottom: -0.2em;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #413232;
|
||||||
|
height: 2.2em;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tool-bar .tb-button:disabled {
|
||||||
|
background: #eaeaea;
|
||||||
|
color: white;
|
||||||
|
cursor: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode {
|
||||||
|
display: inline;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid darkgray;
|
||||||
|
padding: 0 5px 10px 0;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode input {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode label {
|
||||||
|
cursor: pointer;
|
||||||
|
vertical-align: middle;
|
||||||
|
background: white;
|
||||||
|
color: #413232;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode label:after {
|
||||||
|
opacity: 0.1;
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 9px;
|
||||||
|
height: 5px;
|
||||||
|
background: transparent;
|
||||||
|
top: 6px;
|
||||||
|
left: 7px;
|
||||||
|
border: 3px solid black;
|
||||||
|
border-top: none;
|
||||||
|
border-right: none;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode label:hover::after {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode input[type=checkbox]:checked + label:after {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-mode span {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#footer-url, div#footer-email, div#footer-reset {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
background: white;
|
||||||
|
border: 1px solid black;
|
||||||
|
padding: 5mm;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#footer-info-original {
|
||||||
|
visibility: hidden;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice--warning {
|
||||||
|
padding: 1em;
|
||||||
|
font-size: 0.75em;
|
||||||
|
text-indent: initial;
|
||||||
|
border: 1px solid #d0d0d0;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ff-serif {
|
||||||
|
font-family: serif;
|
||||||
|
}
|
||||||
|
|
||||||
#modal-background {
|
#modal-background {
|
||||||
display: none;
|
display: none;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
|
@ -322,10 +455,9 @@ body {
|
||||||
/* hide the actual file picker control, since we just want them to click the
|
/* hide the actual file picker control, since we just want them to click the
|
||||||
* image instead
|
* image instead
|
||||||
*/
|
*/
|
||||||
#logo-picker {
|
.logo-picker {
|
||||||
width: 0px;
|
visibility: hidden;
|
||||||
height: 0px;
|
position: absolute;
|
||||||
opacity: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo-instructions {
|
.logo-instructions {
|
||||||
|
@ -510,6 +642,7 @@ body {
|
||||||
padding-left: 3px;
|
padding-left: 3px;
|
||||||
padding-right: 3px;
|
padding-right: 3px;
|
||||||
margin: 0px 1px 0px 1px;
|
margin: 0px 1px 0px 1px;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
input.realistic {
|
input.realistic {
|
||||||
|
@ -524,6 +657,15 @@ body {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
figure.inksimulation div {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Display svg buttons only with svg hover */
|
||||||
|
figure.inksimulation:hover > div {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
/* Color Swatches */
|
/* Color Swatches */
|
||||||
|
|
||||||
.color-palette {
|
.color-palette {
|
||||||
|
@ -799,6 +941,7 @@ body {
|
||||||
white-space: wrap;
|
white-space: wrap;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-top: 2mm;
|
padding-top: 2mm;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -809,6 +952,25 @@ body {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.edit-footer-link {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
line-height: 15mm;
|
||||||
|
background: #ffffffbf;
|
||||||
|
font-size: x-large;
|
||||||
|
cursor: pointer;
|
||||||
|
height: 15mm;
|
||||||
|
border: 1px dashed #cccbcb;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer:hover > .edit-footer-link {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
/* Messages */
|
/* Messages */
|
||||||
|
|
||||||
#errors.show {
|
#errors.show {
|
||||||
|
@ -987,30 +1149,18 @@ body {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
figure.inksimulation div {
|
figure.inksimulation div,
|
||||||
|
.ui,
|
||||||
|
#settings-ui,
|
||||||
|
#errors,
|
||||||
|
span.logo-instructions {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#settings-ui {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#errors {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-field:not(:empty)::before {
|
.header-field:not(:empty)::before {
|
||||||
content: attr(data-label);
|
content: attr(data-label);
|
||||||
padding-right: 0.5em;
|
padding-right: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
span.logo-instructions {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@page {
|
@page {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<footer>
|
<footer>
|
||||||
<p class="num_pages">{{ _('Page') }} <span class="page-num"></span>/<span class="total-page-num"></span></p>
|
<p class="num_pages">{{ _('Page') }} <span class="page-num"></span>/<span class="total-page-num"></span></p>
|
||||||
<p>Proudly generated with <a href="http://inkstitch.org/" target="_blank">Ink/Stitch</a></p>
|
<div class="footer-info" data-field-name="footer-info">{{ _('Proudly generated with') }} <a href="http://inkstitch.org/" target="_blank">Ink/Stitch</a></div>
|
||||||
|
<div class="edit-footer-link">✎</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<figure class="brandlogo">
|
<figure class="brandlogo">
|
||||||
<label for="logo-picker">
|
<label class="logo-upload">
|
||||||
<img src="{{ logo.src or "resources/inkstitch-logo.svg" }}" alt="{{ logo.title }}" title="{{ logo.title }}" data-field-name="logo">
|
<img src="{{ logo.src or "resources/inkstitch-logo.svg" }}" alt="{{ logo.title }}" title="{{ logo.title }}" data-field-name="logo">
|
||||||
<input type=file id="logo-picker" />
|
<input type=file class="logo-picker" />
|
||||||
<span class="logo-instructions">{{ _("Click to choose another logo") }}</span>
|
<span class="logo-instructions">{{ _("Click to choose another logo") }}</span>
|
||||||
</label>
|
</label>
|
||||||
</figure>
|
</figure>
|
||||||
|
|
|
@ -16,82 +16,129 @@
|
||||||
|
|
||||||
<div id="tabs">
|
<div id="tabs">
|
||||||
<button class="tab active">{{ _('Page Setup') }}</button>
|
<button class="tab active">{{ _('Page Setup') }}</button>
|
||||||
|
<button class="tab" id="branding-tab">{{ _('Branding') }}</button>
|
||||||
<button class="tab">{{ _('Estimated Time') }}</button>
|
<button class="tab">{{ _('Estimated Time') }}</button>
|
||||||
<button class="tab">{{ _('Design') }}</button>
|
<button class="tab">{{ _('Design') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="fieldsets-ui">
|
<div id="fieldsets-ui">
|
||||||
|
|
||||||
<fieldset id="ui-page-setup">
|
<fieldset id="ui-page-setup">
|
||||||
|
<fieldset>
|
||||||
<legend>{{ _('Page Setup') }}</legend>
|
<legend>{{ _('Page Setup') }}</legend>
|
||||||
<div>
|
<p class="select-container">
|
||||||
<p class="select-container">
|
<label for="printing-size">{{ _('Printing Size') }}:</label>
|
||||||
<label for="printing-size">{{ _('Printing Size') }}:</label>
|
<select id="printing-size" data-field-name="paper-size">
|
||||||
<select id="printing-size" data-field-name="paper-size">
|
<option value="letter" selected="selected">Letter</option>
|
||||||
<option value="letter" selected="selected">Letter</option>
|
<option value="a4">A4</option>
|
||||||
<option value="a4">A4</option>
|
</select>
|
||||||
</select>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<fieldset>
|
|
||||||
<legend>{{ _('Print Layouts') }}</legend>
|
|
||||||
<p><input type="checkbox" class="view" id="client-overview" data-field-name="client-overview" /><label for="client-overview">{{ _('Client Overview') }}</label></p>
|
|
||||||
<p><input type="checkbox" class="view" id="client-detailedview" data-field-name="client-detailedview" /><label for="client-detailedview">{{ _('Client Detailed View') }}</label></p>
|
|
||||||
<p><input type="checkbox" class="view" id="operator-overview" data-field-name="operator-overview" CHECKED /><label for="operator-overview">{{ _('Operator Overview') }}</label></p>
|
|
||||||
<p><input type="checkbox" class="view" id="operator-detailedview" data-field-name="operator-detailedview" CHECKED /><label for="operator-detailedview">{{ _('Operator Detailed View') }}</label></p>
|
|
||||||
<p style="text-indent: 1.5em;">{{ _('Thumbnail size') }}: <input type="range" min="15" max="110" value="15" step="5" id="operator-detailedview-thumbnail-size" data-field-name="operator-detailedview-thumbnail-size" style="vertical-align: middle;"> <span id="display-thumbnail-size">15mm</span>
|
|
||||||
</p>
|
|
||||||
</fieldset>
|
|
||||||
<button class="save-settings" title="{{ _("Includes these Page Setup, estimated time settings and also the icon.") }}">{{ _("Save as defaults") }}</button>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset id="ui-time" class="ui-tab">
|
|
||||||
<legend>{{ _('Estimated Time') }}</legend>
|
|
||||||
<fieldset>
|
|
||||||
<legend>{{ _('Machine Settings') }}</legend>
|
|
||||||
<p>
|
|
||||||
<input class="view" type="number" id="machine-speed" data-field-name="machine-speed" min="0" value="700" title="{{ _('Average Machine Speed') }}" />
|
|
||||||
<label for="machine-speed">{{ _('stitches per minute ') }}</label>
|
|
||||||
</p>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<legend>{{ _('Time Factors') }}</legend>
|
|
||||||
<p>
|
|
||||||
<input type="number" id="time-additional" data-field-name="time-additional" min="0" value="0" />
|
|
||||||
<label for="time-additional" title="{{ _('Includes average time for preparing the machine, thread breaks and/or bobbin changes, etc.') }}">{{ _('seconds to add to total time*') }}</label>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<input type="number" id="time-color-change" data-field-name="time-color-change" min="0" value="10" />
|
|
||||||
<label for="time-color-change" title="{{ _('This will be added to the total time.') }}">{{ _('seconds needed for a color change*') }}</label></p>
|
|
||||||
<p>
|
|
||||||
<input type="number" id="time-trims" data-field-name="time-trims" min="0" value="10" />
|
|
||||||
<label for="time-trims">{{ _('seconds needed for trim') }}</label></p>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<legend>{{ _('Display Time On') }}</legend>
|
|
||||||
<p>
|
|
||||||
<p><input type="checkbox" class="time-display" id="time-clo" data-field-name="time-clo" /><label for="time-clo">{{ _('Client Overview') }}</label></p>
|
|
||||||
<p><input type="checkbox" class="time-display" id="time-cld" data-field-name="time-cld" /><label for="time-cld">{{ _('Client Detailed View') }}</label></p>
|
|
||||||
<p><input type="checkbox" class="time-display" id="time-opo" data-field-name="time-opo" CHECKED /><label for="time-opo">{{ _('Operator Overview') }}</label></p>
|
|
||||||
<p><input type="checkbox" class="time-display" id="time-opd" data-field-name="time-opd" CHECKED /><label for="time-opd">{{ _('Operator Detailed View') }}</label></p>
|
|
||||||
</p>
|
|
||||||
</fieldset>
|
|
||||||
<button class="save-settings" title="{{ _("Includes these Page Setup, estimated time settings and also the icon.") }}">{{ _("Save as defaults") }}</button>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset id="ui-design" class="ui-tab">
|
|
||||||
<legend>{{ _('Design') }}</legend>
|
|
||||||
<p class="select-container"><label for="thread-palette">{{ _('Thread Palette') }}:</label>
|
|
||||||
<select id="thread-palette" data-field-name="thread-palette">
|
|
||||||
{% if selected_palette is none %}
|
|
||||||
<option value="" selected>{{ _('None') }}</option>
|
|
||||||
{% endif %}
|
|
||||||
{% for palette in palettes %}
|
|
||||||
<option value="{{ palette }}" {{ "selected" if palette == selected_palette.name else "" }}>{{ palette }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div><!-- END FIELDSETS-UI -->
|
<fieldset>
|
||||||
</div><!-- END SETTINGS-UI-->
|
<legend>{{ _('Print Layouts') }}</legend>
|
||||||
|
<p><input type="checkbox" class="view" id="client-overview" data-field-name="client-overview" /><label for="client-overview">{{ _('Client Overview') }}</label></p>
|
||||||
|
<p><input type="checkbox" class="view" id="client-detailedview" data-field-name="client-detailedview" /><label for="client-detailedview">{{ _('Client Detailed View') }}</label></p>
|
||||||
|
<p><input type="checkbox" class="view" id="operator-overview" data-field-name="operator-overview" CHECKED /><label for="operator-overview">{{ _('Operator Overview') }}</label></p>
|
||||||
|
<p><input type="checkbox" class="view" id="operator-detailedview" data-field-name="operator-detailedview" CHECKED /><label for="operator-detailedview">{{ _('Operator Detailed View') }}</label></p>
|
||||||
|
<p style="text-indent: 1.5em;">{{ _('Thumbnail size') }}: <input type="range" min="15" max="110" value="15" step="5" id="operator-detailedview-thumbnail-size" data-field-name="operator-detailedview-thumbnail-size" style="vertical-align: middle;"> <span id="display-thumbnail-size">15mm</span></p>
|
||||||
|
</fieldset>
|
||||||
|
<button class="save-settings" title="{{ _("Includes these Page Setup, estimated time settings and also the icon.") }}">{{ _("Save as defaults") }}</button>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset id="ui-branding" class="ui-tab">
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ _('Logo') }}</legend>
|
||||||
|
<figure class="brandlogo brandlogo-ui">
|
||||||
|
<label class="logo-legend">
|
||||||
|
{{ ('Choose File') }}
|
||||||
|
<img src="{{ logo.src or "resources/inkstitch-logo.svg" }}" alt="{{ logo.title }}" title="{{ logo.title }}" data-field-name="logo" class="logo-ui">
|
||||||
|
<input type=file class="logo-picker" />
|
||||||
|
</label>
|
||||||
|
</figure>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset id="edit-footer">
|
||||||
|
<legend>{{ _('Footer: Operator contact information') }}</legend>
|
||||||
|
<div id="tool-bar">
|
||||||
|
<button id="tb-bold" class="tb-button ff-serif edit-only" title="Bold"><b>B</b></button>
|
||||||
|
<button id="tb-italic" class="tb-button ff-serif edit-only" title="Italic"><i>I</i></button>
|
||||||
|
<button id="tb-underline" class="tb-button ff-serif edit-only" title="Underline"><u>U</u></button>
|
||||||
|
<button id="tb-remove" class="tb-button ff-serif edit-only" title="Remove formatting"><u style="vertical-align: super; font-size: 60%;">A</u><span style="vertical-align: sub; font-size: 80%;">A</span></button>
|
||||||
|
<button id="tb-hyperlink" class="tb-button edit-only" title="Hyperlink">☍</button>
|
||||||
|
<button id="tb-mail" class="tb-button edit-only" title="E-Mail">✉</button>
|
||||||
|
<button id="tb-reset" class="tb-button" title="Reset text">↺</button>
|
||||||
|
<p id="edit-mode"><input type="checkbox" id="switch-mode" name="switch-mode" /> <label for="switch-mode">{{ ('Show HTML') }}</label></p>
|
||||||
|
<div id="footer-url">
|
||||||
|
<p>{{ _("Enter URL") }}: <input type="text" id="footer-link" name="footer-link" value="https://" /></p>
|
||||||
|
<p><button id="url-ok">{{ _("OK") }}</button> <button id="url-cancel">{{ _("Cancel") }}</button></p>
|
||||||
|
</div>
|
||||||
|
<div id="footer-email">
|
||||||
|
<p>{{ _("Enter E-Mail") }}: <input type="text" id="footer-mail" name="footer-mail" value="@" /></p>
|
||||||
|
<p><button id="mail-ok">{{ _("OK") }}</button> <button id="mail-cancel">{{ _("Cancel") }}</button></p>
|
||||||
|
</div>
|
||||||
|
<div id="footer-info-original">{{ _("Proudly generated with") }} <a href="http://inkstitch.org/" target="_blank">Ink/Stitch</a></div>
|
||||||
|
<div id="footer-reset">
|
||||||
|
<p>{{ _("This will reset your custom text to the default.") }}</p>
|
||||||
|
<p>{{ _("All changes will be lost.") }}</p>
|
||||||
|
<p><button id="reset-ok">{{ _("OK") }}</button> <button id="reset-cancel">{{ _("Cancel") }}</button></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="footer-info-text" contenteditable="true"><div>{{ _("Proudly generated with") }} <a href="http://inkstitch.org/" target="_blank">Ink/Stitch</a></div></div>
|
||||||
|
<p class="notice--warning"><b>Note</b>: If you are using Firefox, use visible URLs. Links will not be printed to PDF with this browser.</p>
|
||||||
|
</fieldset>
|
||||||
|
<button class="save-settings" title="{{ _('Includes these Page Setup, estimated time settings and also the icon.') }}">{{ _("Save as defaults") }}</button>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset id="ui-time" class="ui-tab">
|
||||||
|
<legend>{{ _('Estimated Time') }}</legend>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ _('Machine Settings') }}</legend>
|
||||||
|
<p>
|
||||||
|
<input class="view" type="number" id="machine-speed" data-field-name="machine-speed" min="0" value="700" title="{{ _('Average Machine Speed') }}" />
|
||||||
|
<label for="machine-speed">{{ _('stitches per minute ') }}</label>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ _('Time Factors') }}</legend>
|
||||||
|
<p>
|
||||||
|
<input type="number" id="time-additional" data-field-name="time-additional" min="0" value="0" />
|
||||||
|
<label for="time-additional" title="{{ _('Includes average time for preparing the machine, thread breaks and/or bobbin changes, etc.') }}">{{ _('seconds to add to total time*') }}</label>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<input type="number" id="time-color-change" data-field-name="time-color-change" min="0" value="10" />
|
||||||
|
<label for="time-color-change" title="{{ _('This will be added to the total time.') }}">{{ _('seconds needed for a color change*') }}</label></p>
|
||||||
|
<p>
|
||||||
|
<input type="number" id="time-trims" data-field-name="time-trims" min="0" value="10" />
|
||||||
|
<label for="time-trims">{{ _('seconds needed for trim') }}</label></p>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{{ _('Display Time On') }}</legend>
|
||||||
|
<p>
|
||||||
|
<p><input type="checkbox" class="time-display" id="time-clo" data-field-name="time-clo" /><label for="time-clo">{{ _('Client Overview') }}</label></p>
|
||||||
|
<p><input type="checkbox" class="time-display" id="time-cld" data-field-name="time-cld" /><label for="time-cld">{{ _('Client Detailed View') }}</label></p>
|
||||||
|
<p><input type="checkbox" class="time-display" id="time-opo" data-field-name="time-opo" CHECKED /><label for="time-opo">{{ _('Operator Overview') }}</label></p>
|
||||||
|
<p><input type="checkbox" class="time-display" id="time-opd" data-field-name="time-opd" CHECKED /><label for="time-opd">{{ _('Operator Detailed View') }}</label></p>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
||||||
|
<button class="save-settings" title="{{ _('Includes page setup, estimated time and also the branding.') }}">{{ _("Save as defaults") }}</button>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset id="ui-design" class="ui-tab">
|
||||||
|
<legend>{{ _('Design') }}</legend>
|
||||||
|
<p class="select-container"><label for="thread-palette">{{ _('Thread Palette') }}:</label>
|
||||||
|
<select id="thread-palette" data-field-name="thread-palette">
|
||||||
|
{% if selected_palette is none %}
|
||||||
|
<option value="" selected>{{ _('None') }}</option>
|
||||||
|
{% endif %}
|
||||||
|
{% for palette in palettes %}
|
||||||
|
<option value="{{ palette }}" {{ "selected" if palette == selected_palette.name else "" }}>{{ palette }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
</div><!-- END FIELDSETS-UI -->
|
||||||
|
|
||||||
|
</div><!-- END SETTINGS-UI-->
|
||||||
|
|
||||||
<div id="modal-background" class="modal"></div>
|
<div id="modal-background" class="modal"></div>
|
||||||
<div id="modal-content" class="modal">
|
<div id="modal-content" class="modal">
|
||||||
|
|
Ładowanie…
Reference in New Issue