💄 add copy to clipboard icon
- add copy to clipboard button for macro example
This commit is contained in:
parent
705e26d94b
commit
63029d4177
|
@ -140,6 +140,42 @@ ul#klipper-settings {
|
||||||
resize: none;
|
resize: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.klipper-copyicon {
|
||||||
|
position: absolute;
|
||||||
|
top: 2.3em;
|
||||||
|
right: 2.5em;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-left: 4px;
|
||||||
|
width: 11px;
|
||||||
|
height: 13px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.klipper-animate {
|
||||||
|
animation-name: klipper-pulse;
|
||||||
|
animation-duration: 0.2s;
|
||||||
|
animation-direction: alternate;
|
||||||
|
animation-iteration-count: 2;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes klipper-pulse {
|
||||||
|
0% {
|
||||||
|
transform: scale(1);
|
||||||
|
color:rgba(221, 255, 220, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
75% {
|
||||||
|
transform: scale(1.1);
|
||||||
|
color:rgba(117, 255, 112, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: scale(1.7);
|
||||||
|
color:rgba(9, 255, 0, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.gap {
|
.gap {
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
}
|
}
|
||||||
|
|
|
@ -361,6 +361,34 @@ $(function () {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// trigger tooltip a first time to "enable"
|
||||||
|
$("#klipper-copyToClipboard").tooltip('hide');
|
||||||
|
|
||||||
|
$("#klipper-copyToClipboard").click(function(event) {
|
||||||
|
const ele = $(this);
|
||||||
|
const Text = $(this).prev();
|
||||||
|
const icon = document.getElementById("klipper-copyToClipboard");
|
||||||
|
|
||||||
|
/* Copy the text inside the text field */
|
||||||
|
navigator.clipboard.writeText(Text[0].value).then(function () {
|
||||||
|
ele.attr('data-original-title', gettext("Copied"));
|
||||||
|
ele.tooltip('show');
|
||||||
|
icon.classList.add("klipper-animate");
|
||||||
|
|
||||||
|
self.sleep(300).then(function () {
|
||||||
|
icon.classList.remove("klipper-animate");
|
||||||
|
$("#klipper-copyToClipboard").attr('data-original-title', gettext("Copy to Clipboard"));
|
||||||
|
});
|
||||||
|
}, function (err) {
|
||||||
|
$("#klipper-copyToClipboard").attr('data-original-title', gettext("Error:") + err);
|
||||||
|
$("#klipper-copyToClipboard").tooltip('show');
|
||||||
|
|
||||||
|
self.sleep(300).then(function () {
|
||||||
|
$("#copyToClipboard").attr('data-original-title', gettext("Copy to Clipboard"));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
self.sleep = function (ms) {
|
self.sleep = function (ms) {
|
||||||
return new Promise(resolve => setTimeout(resolve, ms));
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||||||
};
|
};
|
||||||
|
|
|
@ -172,7 +172,10 @@
|
||||||
<div class="controls" style="margin-left: 82px;">
|
<div class="controls" style="margin-left: 82px;">
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12" style="margin-top:2px;">
|
<div class="span12" style="margin-top:2px;">
|
||||||
<textarea rows="2" class="block klipper-noresize">PID_CALIBRATE HEATER={label:Heater, default:extruder, options:extruder|extruder1} TARGET={label:Target Temperature, unit:°C, default:190} WRITE_FILE={label:Write to File, default:0, options:0|1}</textarea>
|
<div style="position: relative;">
|
||||||
|
<textarea readonly style='cursor: text; mix-blend-mode: difference; font-family: "Lucida Console", "Courier New", monospace;' rows="2" class="block klipper-noresize">PID_CALIBRATE HEATER={label:Heater, default:extruder, options:extruder|extruder1} TARGET={label:Target Temperature, unit:°C, default:190} WRITE_FILE={label:Write to File, default:0, options:0|1}</textarea>
|
||||||
|
<i id="klipper-copyToClipboard" class="far fa-clone klipper-copyicon" data-original-title="{{ _('Copy to Clipboard') }}"></i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue