svg inline fontawesome icons
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
"tus-js-client": "^1.4.3",
|
"tus-js-client": "^1.4.3",
|
||||||
"uuid": "^3.0.1",
|
"uuid": "^3.0.1",
|
||||||
"vue": "^2.3.2",
|
"vue": "^2.3.2",
|
||||||
|
"vue-awesome": "^2.3.1",
|
||||||
"vuex": "^2.3.1"
|
"vuex": "^2.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.download-app
|
.download-app
|
||||||
a.btn.btn-sm.btn-info.btn-new-session(@click='login()', title='Refresh', v-if="loggedIn")
|
a.btn.btn-sm.btn-info.btn-new-session(@click='login()', title='Refresh', v-if="loggedIn")
|
||||||
i.fa.fa-fw.fa-refresh
|
icon(name="refresh")
|
||||||
|
|
||||||
.alert.alert-danger(v-show="error")
|
.alert.alert-danger(v-show="error")
|
||||||
strong
|
strong
|
||||||
i.fa.fa-exclamation-triangle
|
icon.fa-fw(name="exclamation-triangle")
|
||||||
| {{ error }}
|
| {{ error }}
|
||||||
form.well(v-if='!loggedIn', @submit.stop.prevent="login")
|
form.well(v-if='!loggedIn', @submit.stop.prevent="login")
|
||||||
h3 Password
|
h3 Password
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
strong Access denied!
|
strong Access denied!
|
||||||
|
|
|
|
||||||
button.btn.btn-primary(type="submit", :disabled="!password")
|
button.btn.btn-primary(type="submit", :disabled="!password")
|
||||||
i.fa.fa-sign-in
|
icon.fa-fw(name="sign-in")
|
||||||
| login
|
| login
|
||||||
|
|
||||||
div(v-if="loggedIn")
|
div(v-if="loggedIn")
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
tr.bucket(@click="expandView(sid)")
|
tr.bucket(@click="expandView(sid)")
|
||||||
td
|
td
|
||||||
| {{ sid }}
|
| {{ sid }}
|
||||||
i.fa.fa-key.pull-right(v-if="sum[sid].password", title="Password protected")
|
icon.pull-right(name="key", v-if="sum[sid].password", title="Password protected")
|
||||||
td {{ sum[sid].created | date }}
|
td {{ sum[sid].created | date }}
|
||||||
td
|
td
|
||||||
template(v-if="sum[sid].lastDownload") {{ sum[sid].lastDownload | date}}
|
template(v-if="sum[sid].lastDownload") {{ sum[sid].lastDownload | date}}
|
||||||
@@ -62,7 +62,11 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
"use strict";
|
import 'vue-awesome/icons/exclamation-triangle';
|
||||||
|
import 'vue-awesome/icons/refresh';
|
||||||
|
import 'vue-awesome/icons/sign-in';
|
||||||
|
import 'vue-awesome/icons/key';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'app',
|
name: 'app',
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.download-app
|
.download-app
|
||||||
a.btn.btn-sm.btn-info.btn-new-session(@click='newSession()', title='New Upload')
|
a.btn.btn-sm.btn-info.btn-new-session(@click='newSession()', title='New Upload')
|
||||||
i.fa.fa-fw.fa-cloud-upload
|
icon.fa-fw(name="cloud-upload")
|
||||||
span.hidden-xs new upload
|
span.hidden-xs new upload
|
||||||
.alert.alert-danger(v-show="error")
|
.alert.alert-danger(v-show="error")
|
||||||
strong
|
strong
|
||||||
i.fa.fa-exclamation-triangle
|
icon.fa-fw(name="exclamation-triangle")
|
||||||
| {{ error }}
|
| {{ error }}
|
||||||
.well(v-if='needsPassword')
|
.well(v-if='needsPassword')
|
||||||
h3 Password
|
h3 Password
|
||||||
@@ -15,17 +15,17 @@
|
|||||||
strong Access denied!
|
strong Access denied!
|
||||||
|
|
|
|
||||||
button.btn.btn-primary(:disabled='password.length<1', @click='decrypt()')
|
button.btn.btn-primary(:disabled='password.length<1', @click='decrypt()')
|
||||||
i.fa.fa-key
|
icon.fa-fw(name="key")
|
||||||
| decrypt
|
| decrypt
|
||||||
.panel.panel-primary(v-if='!needsPassword')
|
.panel.panel-primary(v-if='!needsPassword')
|
||||||
.panel-heading
|
.panel-heading
|
||||||
strong Files
|
strong Files
|
||||||
div.pull-right.btn-group.btn-download-archive(v-if="downloadsAvailable")
|
div.pull-right.btn-group.btn-download-archive(v-if="downloadsAvailable")
|
||||||
a.btn.btn-sm.btn-default(@click="downloadAll('zip')", title="Archive download is not resumeable!")
|
a.btn.btn-sm.btn-default(@click="downloadAll('zip')", title="Archive download is not resumeable!")
|
||||||
i.fa.fa-fw.fa-fw.fa-download
|
icon.fa-fw(name="download")
|
||||||
| zip
|
| zip
|
||||||
a.btn.btn-sm.btn-default(@click="downloadAll('tar.gz')", title="Archive download is not resumeable!")
|
a.btn.btn-sm.btn-default(@click="downloadAll('tar.gz')", title="Archive download is not resumeable!")
|
||||||
i.fa.fa-fw.fa-fw.fa-download
|
icon.fa-fw(name="download")
|
||||||
| tar.gz
|
| tar.gz
|
||||||
.panel-body
|
.panel-body
|
||||||
table.table.table-hover.table-striped
|
table.table.table-hover.table-striped
|
||||||
@@ -37,9 +37,9 @@
|
|||||||
div.pull-right.btn-group
|
div.pull-right.btn-group
|
||||||
clipboard.btn.btn-sm.btn-default(:value='host + file.url', @change='copied(file, $event)', title='Copy to clipboard')
|
clipboard.btn.btn-sm.btn-default(:value='host + file.url', @change='copied(file, $event)', title='Copy to clipboard')
|
||||||
a
|
a
|
||||||
i.fa.fa-fw.fa-copy
|
icon(name="copy")
|
||||||
a.btn.btn-sm.btn-default(title="Preview", @click.prevent.stop="preview=file", v-if="file.previewType")
|
a.btn.btn-sm.btn-default(title="Preview", @click.prevent.stop="preview=file", v-if="file.previewType")
|
||||||
i.fa.fa-fw.fa-eye
|
icon(name="eye")
|
||||||
i.pull-right.fa.fa-check.text-success.downloaded(v-show='file.downloaded')
|
i.pull-right.fa.fa-check.text-success.downloaded(v-show='file.downloaded')
|
||||||
p
|
p
|
||||||
strong {{ file.metadata.name }}
|
strong {{ file.metadata.name }}
|
||||||
@@ -61,6 +61,14 @@
|
|||||||
import Clipboard from './common/Clipboard.vue';
|
import Clipboard from './common/Clipboard.vue';
|
||||||
import PreviewModal from './Download/PreviewModal.vue';
|
import PreviewModal from './Download/PreviewModal.vue';
|
||||||
|
|
||||||
|
import 'vue-awesome/icons/cloud-upload';
|
||||||
|
import 'vue-awesome/icons/exclamation-triangle';
|
||||||
|
import 'vue-awesome/icons/copy';
|
||||||
|
import 'vue-awesome/icons/check';
|
||||||
|
import 'vue-awesome/icons/download';
|
||||||
|
import 'vue-awesome/icons/key';
|
||||||
|
import 'vue-awesome/icons/eye';
|
||||||
|
|
||||||
function getPreviewType(file, maxSize) {
|
function getPreviewType(file, maxSize) {
|
||||||
if(!file || !file.metadata) return false;
|
if(!file || !file.metadata) return false;
|
||||||
if(file.metadata.retention === 'one-time') return false;
|
if(file.metadata.retention === 'one-time') return false;
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
small {{currentIndex+1}} / {{files.length}}
|
small {{currentIndex+1}} / {{files.length}}
|
||||||
span.btn-group
|
span.btn-group
|
||||||
a.btn.btn-sm.btn-default(title="previous", @click="prev", v-show="currentIndex > 0")
|
a.btn.btn-sm.btn-default(title="previous", @click="prev", v-show="currentIndex > 0")
|
||||||
i.fa.fa-fw.fa-arrow-left
|
icon(name="arrow-left")
|
||||||
a.btn.btn-sm.btn-default(title="next", @click="next", v-show="currentIndex < files.length-1")
|
a.btn.btn-sm.btn-default(title="next", @click="next", v-show="currentIndex < files.length-1")
|
||||||
i.fa.fa-fw.fa-arrow-right
|
icon(name="arrow-right")
|
||||||
a.btn.btn-sm.btn-default(title="toggle line wrap", @click="lineWrap = !lineWrap", :class="{active:lineWrap}", v-show="current.previewType === 'text'")
|
a.btn.btn-sm.btn-default(title="toggle line wrap", @click="lineWrap = !lineWrap", :class="{active:lineWrap}", v-show="current.previewType === 'text'")
|
||||||
i.fa.fa-fw.fa-rotate-left.fa-flip-vertical
|
icon(name="rotate-left", flip="vertical")
|
||||||
div(slot="body")
|
div(slot="body")
|
||||||
div(v-if="current.previewType === 'image'", style="text-align:center")
|
div(v-if="current.previewType === 'image'", style="text-align:center")
|
||||||
img(:src="current.url", style="max-width: 100%; height:auto")
|
img(:src="current.url", style="max-width: 100%; height:auto")
|
||||||
@@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
import Modal from '../common/Modal.vue';
|
import Modal from '../common/Modal.vue';
|
||||||
|
import 'vue-awesome/icons/arrow-left';
|
||||||
|
import 'vue-awesome/icons/arrow-right';
|
||||||
|
import 'vue-awesome/icons/rotate-left';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { Modal },
|
components: { Modal },
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.upload-app#uploadApp
|
.upload-app#uploadApp
|
||||||
a.btn.btn-sm.btn-info.btn-new-session(@click='newSession()', title='New Upload')
|
a.btn.btn-sm.btn-info.btn-new-session(@click='newSession()', title='New Upload')
|
||||||
i.fa.fa-fw.fa-cloud-upload
|
icon.fa-fw(name="cloud-upload")
|
||||||
span.hidden-xs new upload
|
span.hidden-xs new upload
|
||||||
.alert.alert-danger(v-show="error")
|
.alert.alert-danger(v-show="error")
|
||||||
strong
|
strong
|
||||||
i.fa.fa-exclamation-triangle
|
icon.fa-fw(name="exclamation-triangle")
|
||||||
| {{ error }}
|
| {{ error }}
|
||||||
.well(v-show="state === 'uploaded'")
|
.well(v-show="state === 'uploaded'")
|
||||||
.pull-right.btn-group
|
.pull-right.btn-group
|
||||||
a.btn.btn-primary(:href="mailLnk")
|
a.btn.btn-primary(:href="mailLnk")
|
||||||
i.fa.fa-fw.fa-envelope
|
icon.fa-fw(name="envelope")
|
||||||
| Mail
|
| Mail
|
||||||
clipboard.btn.btn-primary(:value='shareUrl')
|
clipboard.btn.btn-primary(:value='shareUrl')
|
||||||
h3.text-success
|
h3.text-success
|
||||||
i.fa.fa-check
|
icon.fa-fw(name="check")
|
||||||
| Upload completed
|
| Upload completed
|
||||||
div.share-link
|
div.share-link
|
||||||
span.title Download Link:
|
span.title Download Link:
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
a(:href='shareUrl') {{ shareUrl }}
|
a(:href='shareUrl') {{ shareUrl }}
|
||||||
.row.overall-process(v-show="state === 'uploading'")
|
.row.overall-process(v-show="state === 'uploading'")
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
i.fa.fa-spinner.fa-spin.fa-2x.fa-fw.pull-left
|
icon.pull-left(name="spinner", scale="2", spin="")
|
||||||
.progress
|
.progress
|
||||||
.progress-bar.progress-bar-success.progress-bar-striped.active(:style="{width: percentUploaded+'%'}")
|
.progress-bar.progress-bar-success.progress-bar-striped.active(:style="{width: percentUploaded+'%'}")
|
||||||
span(v-show='percentUploaded>10') {{ percentUploaded }}%
|
span(v-show='percentUploaded>10') {{ percentUploaded }}%
|
||||||
@@ -33,11 +33,11 @@
|
|||||||
settings
|
settings
|
||||||
.text-right(v-show='files.length && !disabled')
|
.text-right(v-show='files.length && !disabled')
|
||||||
button.btn.btn-lg.btn-success(@click="$store.dispatch('upload/upload')")
|
button.btn.btn-lg.btn-success(@click="$store.dispatch('upload/upload')")
|
||||||
i.fa.fa-upload
|
icon.fa-fw(name="upload")
|
||||||
| upload
|
| upload
|
||||||
.text-right(v-show="state === 'uploadError'")
|
.text-right(v-show="state === 'uploadError'")
|
||||||
button.btn.btn-lg.btn-success(@click="$store.dispatch('upload/upload')")
|
button.btn.btn-lg.btn-success(@click="$store.dispatch('upload/upload')")
|
||||||
i.fa.fa-upload
|
icon.fa-fw(name="upload")
|
||||||
| retry
|
| retry
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -48,13 +48,20 @@
|
|||||||
import Settings from './Upload/Settings.vue';
|
import Settings from './Upload/Settings.vue';
|
||||||
import Files from './Upload/Files.vue';
|
import Files from './Upload/Files.vue';
|
||||||
import Clipboard from './common/Clipboard.vue'
|
import Clipboard from './common/Clipboard.vue'
|
||||||
|
import 'vue-awesome/icons/cloud-upload';
|
||||||
|
import 'vue-awesome/icons/upload';
|
||||||
|
import 'vue-awesome/icons/check';
|
||||||
|
import 'vue-awesome/icons/spinner';
|
||||||
|
import 'vue-awesome/icons/envelope';
|
||||||
|
import 'vue-awesome/icons/exclamation-triangle';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'App',
|
name: 'App',
|
||||||
components: {
|
components: {
|
||||||
Settings,
|
Settings,
|
||||||
Files,
|
Files,
|
||||||
Clipboard
|
Clipboard,
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
@@ -87,3 +94,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
onclick="document.getElementById('fileInput').click();",
|
onclick="document.getElementById('fileInput').click();",
|
||||||
v-show="files.length === 0")
|
v-show="files.length === 0")
|
||||||
a
|
a
|
||||||
i.fa.fa-plus.fa-4x
|
icon(name="plus", scale="4")
|
||||||
br
|
br
|
||||||
| Drop your files here
|
| Drop your files here
|
||||||
table.table.table-striped
|
table.table.table-striped
|
||||||
@@ -22,18 +22,18 @@
|
|||||||
p
|
p
|
||||||
input.form-control.input-sm(type="text", placeholder="comment...", v-model="file.comment", :disabled="disabled")
|
input.form-control.input-sm(type="text", placeholder="comment...", v-model="file.comment", :disabled="disabled")
|
||||||
.alert.alert-danger(v-if="file.error")
|
.alert.alert-danger(v-if="file.error")
|
||||||
i.fa.fa-fw.fa-exclamation-triangle
|
icon.fa-fw(name="exclamation-triangle")
|
||||||
| {{ file.error }}
|
| {{ file.error }}
|
||||||
.progress(v-show="!file.error && (state === 'uploading' || state === 'uploaded')")
|
.progress(v-show="!file.error && (state === 'uploading' || state === 'uploaded')")
|
||||||
.progress-bar.progress-bar-success.progress-bar-striped(:style="{width: file.progress.percentage+'%'}",:class="{active:!file.uploaded}")
|
.progress-bar.progress-bar-success.progress-bar-striped(:style="{width: file.progress.percentage+'%'}",:class="{active:!file.uploaded}")
|
||||||
td.btns
|
td.btns
|
||||||
a(style="cursor:pointer", @click="!disabled && $store.commit('upload/REMOVE_FILE', file)", :disabled="disabled")
|
a(style="cursor:pointer", @click="!disabled && $store.commit('upload/REMOVE_FILE', file)", :disabled="disabled")
|
||||||
i.fa.fa-fw.fa-times
|
icon(name="times")
|
||||||
|
|
||||||
input#fileInput(type="file", @change="$store.dispatch('upload/addFiles', $event.target.files)", multiple="", :disabled="disabled", style="display: none")
|
input#fileInput(type="file", @change="$store.dispatch('upload/addFiles', $event.target.files)", multiple="", :disabled="disabled", style="display: none")
|
||||||
.text-right
|
.text-right
|
||||||
a.btn.btn-success.btn-sm(onclick="document.getElementById('fileInput').click();", :disabled="disabled", v-show="files.length>0")
|
a.btn.btn-success.btn-sm(onclick="document.getElementById('fileInput').click();", :disabled="disabled", v-show="files.length>0")
|
||||||
i.fa.fa-plus-circle.fa-fw
|
icon(name="plus-circle")
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
@@ -42,6 +42,10 @@
|
|||||||
import {mapState} from 'vuex';
|
import {mapState} from 'vuex';
|
||||||
import dragDrop from 'drag-drop';
|
import dragDrop from 'drag-drop';
|
||||||
import FileIcon from '../common/FileIcon.vue';
|
import FileIcon from '../common/FileIcon.vue';
|
||||||
|
import 'vue-awesome/icons/plus'
|
||||||
|
import 'vue-awesome/icons/plus-circle'
|
||||||
|
import 'vue-awesome/icons/times'
|
||||||
|
import 'vue-awesome/icons/exclamation-triangle'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Files',
|
name: 'Files',
|
||||||
|
|||||||
@@ -17,12 +17,13 @@
|
|||||||
@input="$store.commit('upload/PASSWORD', $event.target.value)",
|
@input="$store.commit('upload/PASSWORD', $event.target.value)",
|
||||||
:disabled='disabled', placeholder='optional')
|
:disabled='disabled', placeholder='optional')
|
||||||
span.input-group-addon(style='cursor: pointer', title='generate password', @click='generatePassword()')
|
span.input-group-addon(style='cursor: pointer', title='generate password', @click='generatePassword()')
|
||||||
i.fa.fa-key
|
icon(name="key")
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
"use strict";
|
"use strict";
|
||||||
import {mapState} from 'vuex';
|
import {mapState} from 'vuex';
|
||||||
|
import 'vue-awesome/icons/key';
|
||||||
|
|
||||||
const passGen = {
|
const passGen = {
|
||||||
_pattern : /[A-Z0-9_\-\+\!]/,
|
_pattern : /[A-Z0-9_\-\+\!]/,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'babel-polyfill';
|
import 'babel-polyfill';
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Admin from './Admin.vue';
|
import Admin from './Admin.vue';
|
||||||
|
import Icon from 'vue-awesome/components/Icon.vue'
|
||||||
|
|
||||||
function parseDate(str) {
|
function parseDate(str) {
|
||||||
if(!str) return str;
|
if(!str) return str;
|
||||||
@@ -25,6 +26,7 @@ Vue.filter('date', function(val, format) {
|
|||||||
return isDate(val) ? formatDate(val, format) : val;
|
return isDate(val) ? formatDate(val, format) : val;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Vue.component('icon', Icon);
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#admin',
|
el: '#admin',
|
||||||
|
|||||||
@@ -13,13 +13,17 @@ Copies a string into the clipboard
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
span(@click.stop='copy()', style='cursor: pointer')
|
span(@click.stop='copy()', style='cursor: pointer')
|
||||||
slot(:state='state')
|
slot(:state='state')
|
||||||
i.fa.fa-fw(:class="{'fa-copy':state=='pristine','fa-check':state=='copied','fa-exclamation-triangle':state=='error'}")
|
icon.fa-fw(name="copy", v-if="state==='pristine'")
|
||||||
|
icon.fa-fw(name="check", v-if="state==='copied'")
|
||||||
|
icon.fa-fw(name="exclamation-triangle", v-if="state==='error'")
|
||||||
slot(name='text') Copy
|
slot(name='text') Copy
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
"use strict";
|
import 'vue-awesome/icons/check';
|
||||||
|
import 'vue-awesome/icons/copy';
|
||||||
|
import 'vue-awesome/icons/exclamation-triangle';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Clipboard",
|
name: "Clipboard",
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
div.file-icon
|
div.file-icon
|
||||||
i.fa.fa-fw.fa-3x(v-if='!isImageBlob', :class='iconClass')
|
icon(:name="iconClass", v-if="!isImageBlob", scale="3")
|
||||||
|
|
|
|
||||||
img(v-if='isImageBlob', :src='blobUrl')
|
img(v-if='isImageBlob', :src='blobUrl')
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
"use strict";
|
import 'vue-awesome/icons/file-image-o';
|
||||||
|
import 'vue-awesome/icons/file-text-o';
|
||||||
|
import 'vue-awesome/icons/file-video-o';
|
||||||
|
import 'vue-awesome/icons/file-audio-o';
|
||||||
|
import 'vue-awesome/icons/file-archive-o';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['file'],
|
props: ['file'],
|
||||||
@@ -15,14 +19,14 @@
|
|||||||
computed: {
|
computed: {
|
||||||
iconClass() {
|
iconClass() {
|
||||||
const type = this.file.type || this.file.metadata && this.file.metadata.type;
|
const type = this.file.type || this.file.metadata && this.file.metadata.type;
|
||||||
if(!type) return 'fa-file-o';
|
if(!type) return 'file-o';
|
||||||
if(type.startsWith('image')) return 'fa-file-image-o';
|
if(type.startsWith('image')) return 'file-image-o';
|
||||||
if(type.startsWith('text')) return 'fa-file-text-o';
|
if(type.startsWith('text')) return 'file-text-o';
|
||||||
if(type.startsWith('video')) return 'fa-file-video-o';
|
if(type.startsWith('video')) return 'file-video-o';
|
||||||
if(type.startsWith('audio')) return 'fa-file-audio-o';
|
if(type.startsWith('audio')) return 'file-audio-o';
|
||||||
if(type === 'application/pdf') return 'fa-file-pdf-o';
|
if(type === 'application/pdf') return 'file-pdf-o';
|
||||||
if(type.startsWith('application')) return 'fa-file-archive-o';
|
if(type.startsWith('application')) return 'file-archive-o';
|
||||||
return 'fa-file-o';
|
return 'file-o';
|
||||||
},
|
},
|
||||||
isImageBlob() {
|
isImageBlob() {
|
||||||
if(!URL && !webkitURL) return false;
|
if(!URL && !webkitURL) return false;
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import 'babel-polyfill';
|
import 'babel-polyfill';
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Download from './Download.vue';
|
import Download from './Download.vue';
|
||||||
|
import Icon from 'vue-awesome/components/Icon.vue'
|
||||||
|
|
||||||
|
Vue.component('icon', Icon);
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#download',
|
el: '#download',
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
import 'babel-polyfill';
|
import 'babel-polyfill';
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Upload from './Upload.vue';
|
import Upload from './Upload.vue';
|
||||||
import store from './Upload/store.js';
|
import store from './Upload/store.js';
|
||||||
|
import Icon from 'vue-awesome/components/Icon.vue'
|
||||||
|
|
||||||
|
Vue.component('icon', Icon);
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#upload',
|
el: '#upload',
|
||||||
|
|||||||
@@ -52,6 +52,16 @@ body > .container {
|
|||||||
td.file-icon {
|
td.file-icon {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
}
|
}
|
||||||
|
h1 .fa-icon {
|
||||||
|
height: 50px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.btn .fa-icon.fa-fw {
|
||||||
|
width: 25px;
|
||||||
|
}
|
||||||
|
.btn .fa-icon {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* FileIcon Component */
|
/* FileIcon Component */
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="robots" content="noindex,nofollow">
|
<meta name="robots" content="noindex,nofollow">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
|
|
||||||
<link href="/assets/styles.css" rel="stylesheet">
|
<link href="/assets/styles.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -15,7 +14,9 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>
|
<h1>
|
||||||
<i class="fa fa-fw fa-gears" style="color: #0275D8"></i>
|
<svg version="1.1" role="presentation" viewBox="0 0 1920 1792" class="fa-icon" style="fill: #0275D8">
|
||||||
|
<path d="M1280 864q0-14-9-23l-352-352q-9-9-23-9t-23 9l-351 351q-10 12-10 24 0 14 9 23t23 9h224v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5-9.5t9.5-22.5v-352h224q13 0 22.5-9.5t9.5-22.5zM1920 1152q0 159-112.5 271.5t-271.5 112.5h-1088q-185 0-316.5-131.5t-131.5-316.5q0-130 70-240t188-165q-2-30-2-43 0-212 150-362t362-150q156 0 285.5 87t188.5 231q71-62 166-62 106 0 181 75t75 181q0 76-41 138 130 31 213.5 135.5t83.5 238.5z"></path>
|
||||||
|
</svg>
|
||||||
PsiTransfer Admin
|
PsiTransfer Admin
|
||||||
</h1>
|
</h1>
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="robots" content="noindex,nofollow">
|
<meta name="robots" content="noindex,nofollow">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
|
|
||||||
<link href="/assets/styles.css" rel="stylesheet">
|
<link href="/assets/styles.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -15,7 +14,9 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>
|
<h1>
|
||||||
<i class="fa fa-fw fa-cloud-download" style="color: #0275D8"></i>
|
<svg version="1.1" role="presentation" viewBox="0 0 1920 1792" class="fa-icon" style="fill: #0275D8">
|
||||||
|
<path d="M1280 928q0-14-9-23t-23-9h-224v-352q0-13-9.5-22.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 22.5v352h-224q-13 0-22.5 9.5t-9.5 22.5q0 14 9 23l352 352q9 9 23 9t23-9l351-351q10-12 10-24zM1920 1152q0 159-112.5 271.5t-271.5 112.5h-1088q-185 0-316.5-131.5t-131.5-316.5q0-130 70-240t188-165q-2-30-2-43 0-212 150-362t362-150q156 0 285.5 87t188.5 231q71-62 166-62 106 0 181 75t75 181q0 76-41 138 130 31 213.5 135.5t83.5 238.5z"></path>
|
||||||
|
</svg>
|
||||||
PsiTransfer
|
PsiTransfer
|
||||||
</h1>
|
</h1>
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="robots" content="noindex,nofollow">
|
<meta name="robots" content="noindex,nofollow">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
|
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -29,7 +28,9 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>
|
<h1>
|
||||||
<i class="fa fa-fw fa-cloud-upload" style="color: #0275D8"></i>
|
<svg version="1.1" role="presentation" viewBox="0 0 1920 1792" class="fa-icon" style="fill: #0275D8">
|
||||||
|
<path d="M1280 864q0-14-9-23l-352-352q-9-9-23-9t-23 9l-351 351q-10 12-10 24 0 14 9 23t23 9h224v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5-9.5t9.5-22.5v-352h224q13 0 22.5-9.5t9.5-22.5zM1920 1152q0 159-112.5 271.5t-271.5 112.5h-1088q-185 0-316.5-131.5t-131.5-316.5q0-130 70-240t188-165q-2-30-2-43 0-212 150-362t362-150q156 0 285.5 87t188.5 231q71-62 166-62 106 0 181 75t75 181q0 76-41 138 130 31 213.5 135.5t83.5 238.5z"></path>
|
||||||
|
</svg>
|
||||||
PsiTransfer
|
PsiTransfer
|
||||||
</h1>
|
</h1>
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="robots" content="noindex,nofollow">
|
<meta name="robots" content="noindex,nofollow">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
|
|
||||||
<link href="/assets/styles.css" rel="stylesheet">
|
<link href="/assets/styles.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -17,7 +16,9 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>
|
<h1>
|
||||||
<i class="fa fa-fw fa-cloud-upload" style="color: #0275D8"></i>
|
<svg version="1.1" role="presentation" viewBox="0 0 1920 1792" class="fa-icon" style="fill: #0275D8">
|
||||||
|
<path d="M1280 864q0-14-9-23l-352-352q-9-9-23-9t-23 9l-351 351q-10 12-10 24 0 14 9 23t23 9h224v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5-9.5t9.5-22.5v-352h224q13 0 22.5-9.5t9.5-22.5zM1920 1152q0 159-112.5 271.5t-271.5 112.5h-1088q-185 0-316.5-131.5t-131.5-316.5q0-130 70-240t188-165q-2-30-2-43 0-212 150-362t362-150q156 0 285.5 87t188.5 231q71-62 166-62 106 0 181 75t75 181q0 76-41 138 130 31 213.5 135.5t83.5 238.5z"></path>
|
||||||
|
</svg>
|
||||||
PsiTransfer
|
PsiTransfer
|
||||||
</h1>
|
</h1>
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
Reference in New Issue
Block a user