Mattthew
commited on
Commit
·
89f2ef2
1
Parent(s):
49cd608
added copy visible names to clipboard
Browse files- artists_and_tags.js +1 -1
- index.css +24 -0
- index.html +4 -1
- index.js +35 -8
artists_and_tags.js
CHANGED
|
@@ -1130,7 +1130,7 @@ var artistsData = [
|
|
| 1130 |
["Smith","Jeffrey","cloudscapes|conceptual|dark|digital|dream-like|landscapes|magic-realism|surreal|added-2023-08-10",true],
|
| 1131 |
["Smith","Kiki","body-art|contemporary|feminism|minimalism|performance|sculpture|added-2023-08-08",true],
|
| 1132 |
["Smith","Michael James","contemporary|environmentalism|landscapes|added-2023-08-16",true],
|
| 1133 |
-
["Smith","Rodney","
|
| 1134 |
["Smith","Samantha Keely","abstract|abstract-Expressionism|contemporary|Dream-like|Loneliness|painting|added-2023-08-08",false],
|
| 1135 |
["Smithson","Robert","conceptual|earthworks|environmentalism|land-art|post-minimalism|sculpture|added-2023-08-08",false],
|
| 1136 |
["Solomon","Barbara Stauffacher","Commercial-art|contemporary|Graphic-Design|Graphic-design|Pop-art|added-2023-08-08",false],
|
|
|
|
| 1130 |
["Smith","Jeffrey","cloudscapes|conceptual|dark|digital|dream-like|landscapes|magic-realism|surreal|added-2023-08-10",true],
|
| 1131 |
["Smith","Kiki","body-art|contemporary|feminism|minimalism|performance|sculpture|added-2023-08-08",true],
|
| 1132 |
["Smith","Michael James","contemporary|environmentalism|landscapes|added-2023-08-16",true],
|
| 1133 |
+
["Smith","Rodney","fashion|monochromatic|photography|portraits|photography-bw|added-2023-08-16",false],
|
| 1134 |
["Smith","Samantha Keely","abstract|abstract-Expressionism|contemporary|Dream-like|Loneliness|painting|added-2023-08-08",false],
|
| 1135 |
["Smithson","Robert","conceptual|earthworks|environmentalism|land-art|post-minimalism|sculpture|added-2023-08-08",false],
|
| 1136 |
["Solomon","Barbara Stauffacher","Commercial-art|contemporary|Graphic-Design|Graphic-design|Pop-art|added-2023-08-08",false],
|
index.css
CHANGED
|
@@ -114,6 +114,30 @@ h4 {
|
|
| 114 |
width: 100%;
|
| 115 |
}
|
| 116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
#alert {
|
| 118 |
position: fixed;
|
| 119 |
z-index: 1;
|
|
|
|
| 114 |
width: 100%;
|
| 115 |
}
|
| 116 |
|
| 117 |
+
#copy-all-names {
|
| 118 |
+
position: absolute;
|
| 119 |
+
z-index: 2;
|
| 120 |
+
left: calc(70% + 25px);
|
| 121 |
+
bottom: 50px;
|
| 122 |
+
transform: translateX(-50%);
|
| 123 |
+
white-space: nowrap;
|
| 124 |
+
background-color: #ffe300;
|
| 125 |
+
opacity: 0.8;
|
| 126 |
+
padding: 4px 8px;
|
| 127 |
+
border-radius: 4px;
|
| 128 |
+
box-shadow: 0 5px 10px black;
|
| 129 |
+
font-size: 12px;
|
| 130 |
+
font-weight: bold;
|
| 131 |
+
color: black;
|
| 132 |
+
cursor: pointer;
|
| 133 |
+
transition: opacity 100ms 200ms linear;
|
| 134 |
+
}
|
| 135 |
+
|
| 136 |
+
#image-container #copy-all-names:hover {
|
| 137 |
+
opacity: 1;
|
| 138 |
+
transition: opacity 100ms 0ms linear;
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
#alert {
|
| 142 |
position: fixed;
|
| 143 |
z-index: 1;
|
index.html
CHANGED
|
@@ -178,13 +178,16 @@
|
|
| 178 |
<span id="edit_most_used" class="hidden">edit</span>
|
| 179 |
<!-- JS will insert checkboxes here -->
|
| 180 |
</div>
|
| 181 |
-
<div id="gutter"
|
|
|
|
|
|
|
| 182 |
<div id="image-container">
|
| 183 |
<div id="filtersHidingAll">
|
| 184 |
these filters hide every image<br>
|
| 185 |
check-mark any tag or ‟permissive”<br>
|
| 186 |
👀
|
| 187 |
</div>
|
|
|
|
| 188 |
<!-- JS will insert images here -->
|
| 189 |
<!--
|
| 190 |
<div class="image-item tag1 tag2">
|
|
|
|
| 178 |
<span id="edit_most_used" class="hidden">edit</span>
|
| 179 |
<!-- JS will insert checkboxes here -->
|
| 180 |
</div>
|
| 181 |
+
<div id="gutter">
|
| 182 |
+
<div data-tooltip="drag slowly"></div>
|
| 183 |
+
</div>
|
| 184 |
<div id="image-container">
|
| 185 |
<div id="filtersHidingAll">
|
| 186 |
these filters hide every image<br>
|
| 187 |
check-mark any tag or ‟permissive”<br>
|
| 188 |
👀
|
| 189 |
</div>
|
| 190 |
+
<div id="copy-all-names">copy all visible names</div>
|
| 191 |
<!-- JS will insert images here -->
|
| 192 |
<!--
|
| 193 |
<div class="image-item tag1 tag2">
|
index.js
CHANGED
|
@@ -1420,6 +1420,27 @@ function copyStuffToClipboard(item,stuff) {
|
|
| 1420 |
.catch(() => {
|
| 1421 |
doAlert('😭😭 Can\'t access clipboard',1);
|
| 1422 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1423 |
}
|
| 1424 |
}
|
| 1425 |
|
|
@@ -1578,6 +1599,7 @@ function movePartition(e) {
|
|
| 1578 |
document.getElementById('toggles').style.width = 'calc(' + gutterEndPercentX + '% - 20px)';
|
| 1579 |
document.getElementById('gutter').style.left = gutterEndPercentX + '%';
|
| 1580 |
document.getElementById('image-container').style.marginLeft = 'calc(' + gutterEndPercentX + '% + 50px)';
|
|
|
|
| 1581 |
imgHoverRule.style.width = gutterEndPercentX + '%';
|
| 1582 |
// prevent text from being selected during drag
|
| 1583 |
if (window.getSelection) {
|
|
@@ -1889,7 +1911,7 @@ function deleteAllEdits() {
|
|
| 1889 |
}
|
| 1890 |
|
| 1891 |
function addAllListeners() {
|
| 1892 |
-
//
|
| 1893 |
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
|
| 1894 |
checkboxes.forEach(function(checkbox) {
|
| 1895 |
let isTop = checkbox.parentNode.classList.contains('top_control');
|
|
@@ -1940,7 +1962,7 @@ function addAllListeners() {
|
|
| 1940 |
}
|
| 1941 |
}
|
| 1942 |
});
|
| 1943 |
-
//
|
| 1944 |
var infoI = document.getElementById('infoI');
|
| 1945 |
infoI.addEventListener('click', function(e) {
|
| 1946 |
showInstructions();
|
|
@@ -1953,7 +1975,7 @@ function addAllListeners() {
|
|
| 1953 |
infoX.addEventListener('click', function(e) {
|
| 1954 |
showExport();
|
| 1955 |
});
|
| 1956 |
-
//
|
| 1957 |
var promptA = document.getElementById('promptA');
|
| 1958 |
promptA.addEventListener('click', function(e) {
|
| 1959 |
highlightSelectedOption('promptA');
|
|
@@ -1972,7 +1994,7 @@ function addAllListeners() {
|
|
| 1972 |
rotatePromptsImages();
|
| 1973 |
storeOptionsState();
|
| 1974 |
});
|
| 1975 |
-
//
|
| 1976 |
var export_favorites = document.getElementById('export_favorites_button');
|
| 1977 |
export_favorites.addEventListener('click', function(e) {
|
| 1978 |
exportTextarea('favorites');
|
|
@@ -2001,7 +2023,7 @@ function addAllListeners() {
|
|
| 2001 |
}
|
| 2002 |
});
|
| 2003 |
});
|
| 2004 |
-
//
|
| 2005 |
var sortTA = document.getElementById('sortTA');
|
| 2006 |
sortTA.addEventListener('click', function(e) {
|
| 2007 |
sortTagsByAlpha();
|
|
@@ -2048,7 +2070,7 @@ function addAllListeners() {
|
|
| 2048 |
}
|
| 2049 |
});
|
| 2050 |
});
|
| 2051 |
-
//
|
| 2052 |
var imageItems = document.getElementsByClassName('image-item');
|
| 2053 |
Array.from(imageItems).forEach(function(imageItem) {
|
| 2054 |
imageItem.addEventListener('mouseenter', function(e) {
|
|
@@ -2092,7 +2114,7 @@ function addAllListeners() {
|
|
| 2092 |
}
|
| 2093 |
});
|
| 2094 |
});
|
| 2095 |
-
//
|
| 2096 |
var gutter = document.getElementById('gutter');
|
| 2097 |
gutter.addEventListener('mousedown', function(e) {
|
| 2098 |
e.preventDefault();
|
|
@@ -2103,7 +2125,12 @@ function addAllListeners() {
|
|
| 2103 |
gutter.removeEventListener('mousemove', movePartition, false);
|
| 2104 |
}, false);
|
| 2105 |
}, false);
|
| 2106 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2107 |
var closeFooter = document.getElementById('close_footer');
|
| 2108 |
closeFooter.addEventListener('click', function(e) {
|
| 2109 |
document.getElementById('layout').classList.add('footerHidden');
|
|
|
|
| 1420 |
.catch(() => {
|
| 1421 |
doAlert('😭😭 Can\'t access clipboard',1);
|
| 1422 |
});
|
| 1423 |
+
} else if(stuff == 'copyAllNames') {
|
| 1424 |
+
let str = '';
|
| 1425 |
+
let count = 0;
|
| 1426 |
+
let imageItems = document.querySelectorAll('.image-item:not(.hidden)');
|
| 1427 |
+
let imageItemsArr = Array.from(imageItems).sort(function (a, b) {
|
| 1428 |
+
return a.querySelectorAll('h3 span')[1].textContent.toLowerCase().localeCompare(
|
| 1429 |
+
b.querySelectorAll('h3 span')[1].textContent.toLowerCase());
|
| 1430 |
+
});
|
| 1431 |
+
for(i=0,il=imageItemsArr.length;i<il;i++) {
|
| 1432 |
+
let item = imageItemsArr[i];
|
| 1433 |
+
str += item.querySelectorAll('h3 span')[0].textContent + ' ';
|
| 1434 |
+
str += item.querySelectorAll('h3 span')[1].textContent + '\n';
|
| 1435 |
+
count++;
|
| 1436 |
+
}
|
| 1437 |
+
navigator.clipboard.writeText(str)
|
| 1438 |
+
.then(() => {
|
| 1439 |
+
doAlert('Copied ' + count.toLocaleString() + ' names to clipboard!',1);
|
| 1440 |
+
})
|
| 1441 |
+
.catch(() => {
|
| 1442 |
+
doAlert('😭😭 Can\'t access clipboard',1);
|
| 1443 |
+
});
|
| 1444 |
}
|
| 1445 |
}
|
| 1446 |
|
|
|
|
| 1599 |
document.getElementById('toggles').style.width = 'calc(' + gutterEndPercentX + '% - 20px)';
|
| 1600 |
document.getElementById('gutter').style.left = gutterEndPercentX + '%';
|
| 1601 |
document.getElementById('image-container').style.marginLeft = 'calc(' + gutterEndPercentX + '% + 50px)';
|
| 1602 |
+
document.getElementById('copy-all-names').style.left = 'calc(' + (gutterEndPercentX + ((100-gutterEndPercentX)/2)) + '% + 25px)';
|
| 1603 |
imgHoverRule.style.width = gutterEndPercentX + '%';
|
| 1604 |
// prevent text from being selected during drag
|
| 1605 |
if (window.getSelection) {
|
|
|
|
| 1911 |
}
|
| 1912 |
|
| 1913 |
function addAllListeners() {
|
| 1914 |
+
// checkboxes
|
| 1915 |
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
|
| 1916 |
checkboxes.forEach(function(checkbox) {
|
| 1917 |
let isTop = checkbox.parentNode.classList.contains('top_control');
|
|
|
|
| 1962 |
}
|
| 1963 |
}
|
| 1964 |
});
|
| 1965 |
+
// options
|
| 1966 |
var infoI = document.getElementById('infoI');
|
| 1967 |
infoI.addEventListener('click', function(e) {
|
| 1968 |
showInstructions();
|
|
|
|
| 1975 |
infoX.addEventListener('click', function(e) {
|
| 1976 |
showExport();
|
| 1977 |
});
|
| 1978 |
+
// prompts
|
| 1979 |
var promptA = document.getElementById('promptA');
|
| 1980 |
promptA.addEventListener('click', function(e) {
|
| 1981 |
highlightSelectedOption('promptA');
|
|
|
|
| 1994 |
rotatePromptsImages();
|
| 1995 |
storeOptionsState();
|
| 1996 |
});
|
| 1997 |
+
// information
|
| 1998 |
var export_favorites = document.getElementById('export_favorites_button');
|
| 1999 |
export_favorites.addEventListener('click', function(e) {
|
| 2000 |
exportTextarea('favorites');
|
|
|
|
| 2023 |
}
|
| 2024 |
});
|
| 2025 |
});
|
| 2026 |
+
// sorting
|
| 2027 |
var sortTA = document.getElementById('sortTA');
|
| 2028 |
sortTA.addEventListener('click', function(e) {
|
| 2029 |
sortTagsByAlpha();
|
|
|
|
| 2070 |
}
|
| 2071 |
});
|
| 2072 |
});
|
| 2073 |
+
// artists
|
| 2074 |
var imageItems = document.getElementsByClassName('image-item');
|
| 2075 |
Array.from(imageItems).forEach(function(imageItem) {
|
| 2076 |
imageItem.addEventListener('mouseenter', function(e) {
|
|
|
|
| 2114 |
}
|
| 2115 |
});
|
| 2116 |
});
|
| 2117 |
+
// gutter
|
| 2118 |
var gutter = document.getElementById('gutter');
|
| 2119 |
gutter.addEventListener('mousedown', function(e) {
|
| 2120 |
e.preventDefault();
|
|
|
|
| 2125 |
gutter.removeEventListener('mousemove', movePartition, false);
|
| 2126 |
}, false);
|
| 2127 |
}, false);
|
| 2128 |
+
// copy-all
|
| 2129 |
+
var copyAllNames = document.getElementById('copy-all-names');
|
| 2130 |
+
copyAllNames.addEventListener('click', function(e) {
|
| 2131 |
+
copyStuffToClipboard(this, 'copyAllNames')
|
| 2132 |
+
});
|
| 2133 |
+
// footer
|
| 2134 |
var closeFooter = document.getElementById('close_footer');
|
| 2135 |
closeFooter.addEventListener('click', function(e) {
|
| 2136 |
document.getElementById('layout').classList.add('footerHidden');
|