From 3713673d2cf1dc9676b706d70a376e1f3cb1fa13 Mon Sep 17 00:00:00 2001 From: miledivovic Date: Mon, 9 Jul 2018 13:09:31 -0700 Subject: [PATCH] Added tooltip for additional input buttons. Added copy to clipboard button for links in sidebar #323 --- css/cass-editor.css | 27 ++++++++++++++++++++---- css/viewFramework.css | 27 ++++++++++++++++++++---- index.html | 48 +++++++++++++++++++++--------------------- js/cass/cass-editor.js | 35 ++++++++++++++++++++++++++++-- js/util.js | 30 ++++++++++++++++++++++++++ js/viewFramework.js | 5 +++-- 6 files changed, 136 insertions(+), 36 deletions(-) diff --git a/css/cass-editor.css b/css/cass-editor.css index 0325420a4..86d91411b 100644 --- a/css/cass-editor.css +++ b/css/cass-editor.css @@ -711,8 +711,7 @@ input.redButton { height:calc(100vh - 1rem); } -.sidebarViewList span, -.sidebarViewList a { +.sidebarViewList span { display: table; } @@ -721,8 +720,28 @@ h3.sidebarViewList { padding-left: 40px; } -#detailSlider p > a { - display: table; +.sidebarPropertyLink { + display: flex; + align-items: center; + margin-top: 0.5rem; +} + +.sidebarPropertyLink button { + float: none !important; + margin-right: 0.5rem !important; +} + +.clipboardTextArea { + position: fixed; + top: 0; + left: 0; + width: 2em; + height: 2em; + padding: 0; + border: none; + outline: none; + box-shadow: none; + background: transparent; } .changedField { diff --git a/css/viewFramework.css b/css/viewFramework.css index df7a9e031..19425600a 100644 --- a/css/viewFramework.css +++ b/css/viewFramework.css @@ -146,8 +146,7 @@ height:calc(100vh - 1rem); } -.sidebarViewList span, -.sidebarViewList a { +.sidebarViewList span { display: table; } @@ -156,8 +155,28 @@ h3.sidebarViewList { padding-left: 40px; } -#detailSlider p > a { - display: table; +.sidebarPropertyLink { + display: flex; + align-items: center; + margin-top: 0.5rem; +} + +.sidebarPropertyLink button { + float: none !important; + margin-right: 0.5rem !important; +} + +.clipboardTextArea { + position: fixed; + top: 0; + left: 0; + width: 2em; + height: 2em; + padding: 0; + border: none; + outline: none; + box-shadow: none; + background: transparent; } .changedField { diff --git a/index.html b/index.html index c208188ad..60b6bfe03 100644 --- a/index.html +++ b/index.html @@ -291,7 +291,7 @@

Framework Name Here

- +
Note: URI only. For example, https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -301,7 +301,7 @@

Framework Name Here

- +
Note: URI only. For example, https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -311,7 +311,7 @@

Framework Name Here

- +
@@ -320,7 +320,7 @@

Framework Name Here

- +
@@ -329,7 +329,7 @@

Framework Name Here

- +
@@ -342,7 +342,7 @@

- +
@@ -351,7 +351,7 @@

- +
@@ -365,7 +365,7 @@

- +
@@ -374,7 +374,7 @@

- +
@@ -397,7 +397,7 @@

- +
@@ -410,7 +410,7 @@

- +
@@ -427,7 +427,7 @@

- +
Note: URI only. For example, https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -437,7 +437,7 @@

- +
Note: URI only. For example, https://sandbox.credentialengineregistry.org/. @@ -456,7 +456,7 @@

- +
@@ -490,7 +490,7 @@

- +
Note: URI only. For example: https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -500,7 +500,7 @@

- +
@@ -509,7 +509,7 @@

- +
Note: URI only. For example: https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -519,7 +519,7 @@

- +
@@ -532,7 +532,7 @@

- +
@@ -550,7 +550,7 @@

- +
Note: URI only. For example: https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -565,7 +565,7 @@

- +
Note: URI only. For example: https://credentialengineregistry.org/, https://eduworks.com, https://case.georgiastandards.org/. @@ -592,7 +592,7 @@

- +
@@ -601,7 +601,7 @@

- +
Note: URI only. For example, https://credentialengineregistry.org/. @@ -620,7 +620,7 @@

- +
Note: URI only. Example, https://sandbox.credentialengineregistry.org/ diff --git a/js/cass/cass-editor.js b/js/cass/cass-editor.js index f57efcffe..cc804e811 100644 --- a/js/cass/cass-editor.js +++ b/js/cass/cass-editor.js @@ -95678,6 +95678,36 @@ resizeEditFrameworkSection = function() { $(".sidebar table").css("margin-top", "calc(" + $(".sidebarToolbar").height() + "px)"); } +copyToClipboard = function(evt) { + var target = $(evt.currentTarget); + var text = target.parent().next().attr('href'); + var textarea = document.createElement('textarea'); + textarea.classList.add('clipboardTextArea'); + textarea.value = text; + document.body.appendChild(textarea); + textarea.focus(); + textarea.select(); + + try { + var successful = document.execCommand('copy'); + var msg = successful ? 'successful' : 'unsuccessful'; + console.log('Copying text command was ' + msg); + if (msg === 'successful') { + target.children().first().removeClass('fa-clipboard'); + target.children().first().addClass('fa-check'); + setTimeout(function() { + target.children().first().removeClass('fa-check'); + target.children().first().addClass('fa-clipboard'); + }, 2000); + } + } catch (err) { + console.log(err); + console.log('Oops, unable to copy'); + } + + document.body.removeChild(textarea); +} + resolveNameFromUrl = function(url, callback) { $.ajax({ dataType: "json", @@ -97544,8 +97574,9 @@ renderSidebar = function (justLists) { if (val[i].toLowerCase().indexOf("http") != -1) { var linkText = val[i]; var elem = $(this); - elem.append("").children().last().attr("href", val[i]).text(linkText); - var anchor = elem.children().last(); + elem.append("").children().last().children().last().attr("href", val[i]).text(linkText); + var anchor = elem.children().last().children().last(); + elem.children().last().prepend("
"); resolveNameFromUrlWithElem(val[i], anchor, function(result, elem) { if (result != null) { elem.text(result); diff --git a/js/util.js b/js/util.js index f223e66fa..e5e1e0043 100644 --- a/js/util.js +++ b/js/util.js @@ -467,6 +467,36 @@ resizeEditFrameworkSection = function() { $(".sidebar table").css("margin-top", "calc(" + $(".sidebarToolbar").height() + "px)"); } +copyToClipboard = function(evt) { + var target = $(evt.currentTarget); + var text = target.parent().next().attr('href'); + var textarea = document.createElement('textarea'); + textarea.classList.add('clipboardTextArea'); + textarea.value = text; + document.body.appendChild(textarea); + textarea.focus(); + textarea.select(); + + try { + var successful = document.execCommand('copy'); + var msg = successful ? 'successful' : 'unsuccessful'; + console.log('Copying text command was ' + msg); + if (msg === 'successful') { + target.children().first().removeClass('fa-clipboard'); + target.children().first().addClass('fa-check'); + setTimeout(function() { + target.children().first().removeClass('fa-check'); + target.children().first().addClass('fa-clipboard'); + }, 2000); + } + } catch (err) { + console.log(err); + console.log('Oops, unable to copy'); + } + + document.body.removeChild(textarea); +} + resolveNameFromUrl = function(url, callback) { $.ajax({ dataType: "json", diff --git a/js/viewFramework.js b/js/viewFramework.js index 0fd59d1a9..23c33efad 100644 --- a/js/viewFramework.js +++ b/js/viewFramework.js @@ -372,8 +372,9 @@ renderSidebar = function (justLists) { if (val[i].toLowerCase().indexOf("http") != -1) { var linkText = val[i]; var elem = $(this); - elem.append("
").children().last().attr("href", val[i]).text(linkText); - var anchor = elem.children().last(); + elem.append("").children().last().children().last().attr("href", val[i]).text(linkText); + var anchor = elem.children().last().children().last(); + elem.children().last().prepend("
"); resolveNameFromUrlWithElem(val[i], anchor, function(result, elem) { if (result != null) { elem.text(result);