aboutsummaryrefslogtreecommitdiff
path: root/src/components/TileInfoModal.vue
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-06-11 20:16:47 +1000
committerTerry Truong <terry06890@gmail.com>2022-06-11 20:16:47 +1000
commitd94953e72fad8e3259e69761744f60a325e63984 (patch)
tree672bcac67da364b5e59bcdd15ca5b365c3dea2e2 /src/components/TileInfoModal.vue
parent1c6280a9d070a6ad44919ce42ed283ab8376e3f7 (diff)
Add links to cc-license pages
Diffstat (limited to 'src/components/TileInfoModal.vue')
-rw-r--r--src/components/TileInfoModal.vue36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/components/TileInfoModal.vue b/src/components/TileInfoModal.vue
index 5f28dbd..45b3192 100644
--- a/src/components/TileInfoModal.vue
+++ b/src/components/TileInfoModal.vue
@@ -84,6 +84,36 @@ export default defineComponent({
height: this.uiOpts.infoModalImgSz + 'px',
};
},
+ licenseToUrl(license: string){
+ license = license.toLowerCase().replaceAll('-', ' ');
+ if (license == 'cc0'){
+ return 'https://creativecommons.org/publicdomain/zero/1.0/';
+ } else if (license == 'cc publicdomain'){
+ return 'https://creativecommons.org/licenses/publicdomain/';
+ } else {
+ const regex = /cc by( nc)?( sa)?( ([0-9.]+)( [a-z]+)?)?/;
+ let results = regex.exec(license);
+ if (results != null){
+ let url = 'https://creativecommons.org/licenses/by';
+ if (results[1] != null){
+ url += '-nc';
+ }
+ if (results[2] != null){
+ url += '-sa';
+ }
+ if (results[4] != null){
+ url += '/' + results[4];
+ } else {
+ url += '/4.0';
+ }
+ if (results[5] != null){
+ url += '/' + results[5].substring(1);
+ }
+ return url;
+ }
+ return "[INVALID LICENSE]";
+ }
+ },
},
created(){
let url = new URL(window.location.href);
@@ -135,7 +165,7 @@ export default defineComponent({
<div :style="imgStyles"/>
<ul v-if="imgInfo != null">
<li>Obtained via: {{imgInfo.imgSrc}}</li>
- <li>License: {{imgInfo.license}}</li>
+ <li>License: <a :href="licenseToUrl(imgInfo.license)">{{imgInfo.license}}</a></li>
<li><a :href="imgInfo.url" class="underline">Source URL</a></li>
<li>Artist: {{imgInfo.artist}}</li>
<li v-if="imgInfo.credit != ''">Credit: {{imgInfo.credit}}</li>
@@ -145,7 +175,7 @@ export default defineComponent({
<div v-if="tolNode.imgName[0] != null" :style="firstImgStyles"/>
<ul v-if="imgInfo1 != null">
<li>Obtained via: {{imgInfo1.imgSrc}}</li>
- <li>License: {{imgInfo1.license}}</li>
+ <li>License: <a :href="licenseToUrl(imgInfo1.license)">{{imgInfo1.license}}</a></li>
<li><a :href="imgInfo1.url" class="underline">Source URL</a></li>
<li>Artist: {{imgInfo1.artist}}</li>
<li v-if="imgInfo1.credit != ''">Credit: {{imgInfo1.credit}}</li>
@@ -153,7 +183,7 @@ export default defineComponent({
<div v-if="tolNode.imgName[1] != null" :style="secondImgStyles"/>
<ul v-if="imgInfo2 != null">
<li>Obtained via: {{imgInfo2.imgSrc}}</li>
- <li>License: {{imgInfo2.license}}</li>
+ <li>License: <a :href="licenseToUrl(imgInfo2.license)">{{imgInfo2.license}}</a></li>
<li><a :href="imgInfo2.url" class="underline">Source URL</a></li>
<li>Artist: {{imgInfo2.artist}}</li>
<li v-if="imgInfo2.credit != ''">Credit: {{imgInfo2.credit}}</li>