Added automatic copying of field values to clipboard
This commit is contained in:
parent
228837da16
commit
0e70ab2c42
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -4,28 +4,28 @@
|
|||||||
{
|
{
|
||||||
"icon": {
|
"icon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
"M108.018 534.899l148.392 76.747h576.168l-190.68-98.62h-385.488l-208.41-107.792v98.62l7.467 3.858z",
|
"M429.696 257.6c54.88 0 68.608 27.424 105.152 22.848 36.576-4.576 4.576-68.576-27.424-114.272s-105.12-22.848-160 9.152c-54.848 32-346.272 209.152-346.272 209.152h254.848c0-0.032 118.848-126.88 173.696-126.88zM0 417.568v416c0 35.328 28.64 64 64 64 0 0 246.72 0 514.656 0 48.064 0 92-149.344 141.344-149.344 42.848 0 75.072 149.344 117.312 149.344 284.576 0 538.656 0 538.656 0 35.36 0 64.032-28.672 64.032-64v-416h-1440zM576 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM1344 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM905.12 280.448c36.576 4.576 50.272-22.848 105.152-22.848 54.848 0 173.728 126.848 173.728 126.848h254.848c0 0-291.424-177.152-346.272-209.152-54.88-32-128-54.848-160-9.152s-64 109.728-27.456 114.304z"
|
||||||
"M48.001 63.785v242.833l208.41 107.788h576.168l-536.16-277.295h593.28v768.365h-768.387v-166.462l135.098 69.865h576.168l-207.951-107.554h-368.217l-208.41-107.799v385.279h915.005v-915.020z"
|
|
||||||
],
|
],
|
||||||
"attrs": [],
|
"attrs": [],
|
||||||
"isMulticolor": false,
|
"isMulticolor": false,
|
||||||
"grid": 0,
|
"width": 1440,
|
||||||
"tags": [
|
"tags": [
|
||||||
"CLIPPERZ_SOLO_LOGO-nero"
|
"3d glasses",
|
||||||
|
"glasses"
|
||||||
],
|
],
|
||||||
"width": 1024
|
"grid": 32
|
||||||
},
|
},
|
||||||
"attrs": [],
|
"attrs": [],
|
||||||
"properties": {
|
"properties": {
|
||||||
"order": 42,
|
"order": 42,
|
||||||
"id": 0,
|
"id": 0,
|
||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 59650,
|
"code": 59649,
|
||||||
"name": "CLIPPERZ_SOLO_LOGO-nero",
|
"name": "3dglasses",
|
||||||
"ligatures": "clipperz"
|
"ligatures": "preview"
|
||||||
},
|
},
|
||||||
"setIdx": 0,
|
"setIdx": 1,
|
||||||
"setId": 13,
|
"setId": 12,
|
||||||
"iconIdx": 0
|
"iconIdx": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -100,39 +100,12 @@
|
|||||||
"prevSize": 32,
|
"prevSize": 32,
|
||||||
"code": 58884,
|
"code": 58884,
|
||||||
"name": "logo",
|
"name": "logo",
|
||||||
"ligatures": "qibberz"
|
"ligatures": "clipperz"
|
||||||
},
|
},
|
||||||
"setIdx": 8,
|
"setIdx": 8,
|
||||||
"setId": 4,
|
"setId": 4,
|
||||||
"iconIdx": 1
|
"iconIdx": 1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"icon": {
|
|
||||||
"paths": [
|
|
||||||
"M429.696 257.6c54.88 0 68.608 27.424 105.152 22.848 36.576-4.576 4.576-68.576-27.424-114.272s-105.12-22.848-160 9.152c-54.848 32-346.272 209.152-346.272 209.152h254.848c0-0.032 118.848-126.88 173.696-126.88zM0 417.568v416c0 35.328 28.64 64 64 64 0 0 246.72 0 514.656 0 48.064 0 92-149.344 141.344-149.344 42.848 0 75.072 149.344 117.312 149.344 284.576 0 538.656 0 538.656 0 35.36 0 64.032-28.672 64.032-64v-416h-1440zM576 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM1344 705.6c0 52.992-43.008 96-96 96h-288c-53.024 0-96-43.008-96-96v-96c0-53.024 42.976-96 96-96h288c52.992 0 96 42.976 96 96v96zM905.12 280.448c36.576 4.576 50.272-22.848 105.152-22.848 54.848 0 173.728 126.848 173.728 126.848h254.848c0 0-291.424-177.152-346.272-209.152-54.88-32-128-54.848-160-9.152s-64 109.728-27.456 114.304z"
|
|
||||||
],
|
|
||||||
"attrs": [],
|
|
||||||
"isMulticolor": false,
|
|
||||||
"width": 1440,
|
|
||||||
"tags": [
|
|
||||||
"3d glasses",
|
|
||||||
"glasses"
|
|
||||||
],
|
|
||||||
"grid": 32
|
|
||||||
},
|
|
||||||
"attrs": [],
|
|
||||||
"properties": {
|
|
||||||
"order": 1,
|
|
||||||
"id": 0,
|
|
||||||
"prevSize": 32,
|
|
||||||
"code": 59649,
|
|
||||||
"name": "3dglasses",
|
|
||||||
"ligatures": "preview"
|
|
||||||
},
|
|
||||||
"setIdx": 1,
|
|
||||||
"setId": 12,
|
|
||||||
"iconIdx": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"icon": {
|
"icon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
@ -374,6 +347,36 @@
|
|||||||
"setId": 0,
|
"setId": 0,
|
||||||
"iconIdx": 208
|
"iconIdx": 208
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"icon": {
|
||||||
|
"paths": [
|
||||||
|
"M810 896v-598h-468v598h468zM810 214q34 0 60 25t26 59v598q0 34-26 60t-60 26h-468q-34 0-60-26t-26-60v-598q0-34 26-59t60-25h468zM682 42v86h-512v598h-84v-598q0-34 25-60t59-26h512z"
|
||||||
|
],
|
||||||
|
"attrs": [
|
||||||
|
{}
|
||||||
|
],
|
||||||
|
"isMulticolor": false,
|
||||||
|
"tags": [
|
||||||
|
"content_copy"
|
||||||
|
],
|
||||||
|
"defaultCode": 57457,
|
||||||
|
"grid": 24
|
||||||
|
},
|
||||||
|
"attrs": [
|
||||||
|
{}
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"order": 43,
|
||||||
|
"id": 113,
|
||||||
|
"prevSize": 24,
|
||||||
|
"code": 57457,
|
||||||
|
"name": "content_copy",
|
||||||
|
"ligatures": "copy"
|
||||||
|
},
|
||||||
|
"setIdx": 4,
|
||||||
|
"setId": 9,
|
||||||
|
"iconIdx": 113
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon": {
|
"icon": {
|
||||||
"paths": [
|
"paths": [
|
||||||
|
@ -85,6 +85,7 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
|
|||||||
</div>
|
</div>
|
||||||
<span class="icon done" style="display:none">done</span>
|
<span class="icon done" style="display:none">done</span>
|
||||||
<span class="icon failed" style="display:none">failed</span>
|
<span class="icon failed" style="display:none">failed</span>
|
||||||
|
<span class="icon custom" style="display:none"></span>
|
||||||
<span class="progressBar" style="display:none"><span class="progress"></span></span>
|
<span class="progressBar" style="display:none"><span class="progress"></span></span>
|
||||||
<span class="title">loading</span>
|
<span class="title">loading</span>
|
||||||
<div class="mask hidden"></div>
|
<div class="mask hidden"></div>
|
||||||
@ -100,7 +101,7 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<!-- div class="testBlock">
|
<div class="testBlock">
|
||||||
<script>
|
<script>
|
||||||
Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
|
Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
|
||||||
</script>
|
</script>
|
||||||
@ -125,7 +126,7 @@ Clipperz_normalizedNewLine = '\x0d\x0a';
|
|||||||
// Live Reload hoock
|
// Live Reload hoock
|
||||||
document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>')
|
document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>')
|
||||||
</script>
|
</script>
|
||||||
</div -->
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -306,6 +306,33 @@ Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onClickOnFieldValue: function (event) {
|
||||||
|
var succeeded;
|
||||||
|
var element;
|
||||||
|
|
||||||
|
element = event.target;
|
||||||
|
|
||||||
|
// event.target.focus();
|
||||||
|
// event.target.select();
|
||||||
|
// event.target.selectionStart = 0;
|
||||||
|
// event.target.selectionEnd = event.target.value.length;
|
||||||
|
// event.stopPropagation();
|
||||||
|
// event.preventDefault();
|
||||||
|
|
||||||
|
element.focus();
|
||||||
|
element.setSelectionRange(0, element.value.length);
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
// selectedText = element.value;
|
||||||
|
|
||||||
|
succeeded = document.execCommand('copy');
|
||||||
|
if (succeeded === true) {
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
|
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'copyFieldValueFeedback');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
//............................................................................
|
//............................................................................
|
||||||
|
|
||||||
renderField: function (aField) {
|
renderField: function (aField) {
|
||||||
@ -331,10 +358,10 @@ Clipperz.PM.UI.Components.Cards.ViewClass = React.createClass({
|
|||||||
React.DOM.div({'className':'fieldValues'}, [
|
React.DOM.div({'className':'fieldValues'}, [
|
||||||
React.DOM.div({'className':'fieldLabel'}, aField['label']),
|
React.DOM.div({'className':'fieldLabel'}, aField['label']),
|
||||||
Clipperz.PM.UI.Components.Cards.TextArea({
|
Clipperz.PM.UI.Components.Cards.TextArea({
|
||||||
// React.DOM.textarea({
|
|
||||||
'readOnly': true,
|
'readOnly': true,
|
||||||
// 'onMouseUp': function(e) { e.target.focus(); e.target.select(); e.stopPropagation(); e.preventDefault();},
|
// 'onMouseUp': function(e) { e.target.focus(); e.target.select(); e.stopPropagation(); e.preventDefault();},
|
||||||
'onClick': function(e) { e.target.focus(); e.target.select(); e.target.selectionStart = 0; e.target.selectionEnd = e.target.value.length; e.stopPropagation(); e.preventDefault(); },
|
// 'onClick': function(e) { e.target.focus(); e.target.select(); e.target.selectionStart = 0; e.target.selectionEnd = e.target.value.length; e.stopPropagation(); e.preventDefault(); },
|
||||||
|
'onClick': this.onClickOnFieldValue,
|
||||||
'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses),
|
'className':Clipperz.PM.UI.Components.classNames(cardFieldValueClasses),
|
||||||
'value': aField['value'],
|
'value': aField['value'],
|
||||||
'rows': 1
|
'rows': 1
|
||||||
|
@ -88,6 +88,17 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, {
|
|||||||
this.completed(this.showDoneIcon, aMessage, aDelayBeforeHiding);
|
this.completed(this.showDoneIcon, aMessage, aDelayBeforeHiding);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'setCustomResultIcon': function (anIcon) {
|
||||||
|
this.getElement('custom').innerHTML = anIcon;
|
||||||
|
MochiKit.Style.showElement(this.getElement('custom'));
|
||||||
|
},
|
||||||
|
|
||||||
|
'customResult': function (anIcon, aMessage, aDelayBeforeHiding) {
|
||||||
|
this.hideMask();
|
||||||
|
this.hideProgressBar();
|
||||||
|
this.completed(MochiKit.Base.method(this, 'setCustomResultIcon', anIcon), aMessage, aDelayBeforeHiding);
|
||||||
|
},
|
||||||
|
|
||||||
'failed': function (aMessage, aDelayBeforeHiding) {
|
'failed': function (aMessage, aDelayBeforeHiding) {
|
||||||
this.completed(this.showFailIcon, aMessage, aDelayBeforeHiding);
|
this.completed(this.showFailIcon, aMessage, aDelayBeforeHiding);
|
||||||
},
|
},
|
||||||
@ -139,10 +150,20 @@ Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, {
|
|||||||
'hide': function (withoutAnimationTime) {
|
'hide': function (withoutAnimationTime) {
|
||||||
var secondsBeforeHiding = withoutAnimationTime ? 0 : 1;
|
var secondsBeforeHiding = withoutAnimationTime ? 0 : 1;
|
||||||
var element = this.element();
|
var element = this.element();
|
||||||
|
|
||||||
|
// this.getElement('custom').innerHTML = '';
|
||||||
|
// MochiKit.Style.hideElement(this.getElement('custom'));
|
||||||
|
|
||||||
this.hideProgressBar();
|
this.hideProgressBar();
|
||||||
MochiKit.DOM.removeElementClass(element, 'ios-overlay-show');
|
MochiKit.DOM.removeElementClass(element, 'ios-overlay-show');
|
||||||
MochiKit.DOM.addElementClass(element, 'ios-overlay-hide');
|
MochiKit.DOM.addElementClass(element, 'ios-overlay-hide');
|
||||||
return MochiKit.Async.callLater(secondsBeforeHiding, MochiKit.Style.hideElement, element);
|
// return MochiKit.Async.callLater(secondsBeforeHiding, MochiKit.Style.hideElement, element);
|
||||||
|
return MochiKit.Async.callLater(secondsBeforeHiding, MochiKit.Base.method(this, 'hideElement'));
|
||||||
|
},
|
||||||
|
|
||||||
|
'hideElement': function () {
|
||||||
|
this.getElement('custom').innerHTML = '';
|
||||||
|
MochiKit.Style.hideElement(this.element())
|
||||||
},
|
},
|
||||||
|
|
||||||
'hideSpinner': function () {
|
'hideSpinner': function () {
|
||||||
|
@ -83,7 +83,7 @@ Clipperz.PM.UI.MainController = function() {
|
|||||||
'matchMediaQuery', 'unmatchMediaQuery',
|
'matchMediaQuery', 'unmatchMediaQuery',
|
||||||
'selectAllCards', 'selectRecentCards', 'selectCardsWithCertificate', 'selectCardsWithAttachments', 'selectUntaggedCards', 'tagSelected', 'search',
|
'selectAllCards', 'selectRecentCards', 'selectCardsWithCertificate', 'selectCardsWithAttachments', 'selectUntaggedCards', 'tagSelected', 'search',
|
||||||
'refreshCardEditDetail',
|
'refreshCardEditDetail',
|
||||||
'saveCardEdits', 'cancelCardEdits',
|
'saveCardEdits', 'cancelCardEdits', 'copyFieldValueFeedback',
|
||||||
'selectCard',
|
'selectCard',
|
||||||
'addCardClick',
|
'addCardClick',
|
||||||
'deleteCard', 'toggleArchiveCard', 'cloneCard', 'editCard', // 'createCertificate',
|
'deleteCard', 'toggleArchiveCard', 'cloneCard', 'editCard', // 'createCertificate',
|
||||||
@ -2620,6 +2620,13 @@ console.log("showCertificateCard_handler");
|
|||||||
return deferredResult;
|
return deferredResult;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
copyFieldValueFeedback_handler: function () {
|
||||||
|
// this.overlay().show("copy", true);
|
||||||
|
// MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.overlay(), 'hide', true));
|
||||||
|
this.overlay().show("copying …", true);
|
||||||
|
this.overlay().customResult('copy', "copied", 0.5);
|
||||||
|
},
|
||||||
|
|
||||||
uploadMessageCallback: function (someArguments, aProgressCallback) {
|
uploadMessageCallback: function (someArguments, aProgressCallback) {
|
||||||
var deferredResult;
|
var deferredResult;
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -101,6 +101,10 @@ div.overlay {
|
|||||||
font-size: 96pt;
|
font-size: 96pt;
|
||||||
color: white;
|
color: white;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
|
|
||||||
|
&.custom {
|
||||||
|
font-size: 80pt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.ios-overlay-show {
|
&.ios-overlay-show {
|
||||||
|
@ -436,6 +436,7 @@ $cardViewBasePadding: 10px;
|
|||||||
// line-height: 1em;
|
// line-height: 1em;
|
||||||
// height: 1.3em;
|
// height: 1.3em;
|
||||||
outline: none;
|
outline: none;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user