fotostore/templates/includes/images_list.html.ep

111 lines
4 KiB
Text
Raw Normal View History

2017-08-01 17:59:51 +03:00
<div class="container">
<div class"upload-form">
<input id="fileupload" type="file" name="image" data-url="/upload" multiple>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="/file_uploader/js/vendor/jquery.ui.widget.js"></script>
<script src="/file_uploader/js/jquery.iframe-transport.js"></script>
<script src="/file_uploader/js/jquery.fileupload.js"></script>
<script>
$(function () {
$('#fileupload').fileupload({
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#lastUploadLog');
});
},
sequentialUploads: true,
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css(
'width',
progress + '%'
);
}
});
});
</script>
</div>
<div id="progress">
2017-08-03 08:47:39 +03:00
<div class="progress-bar" style="width: 0%;"></div>
2017-08-01 17:59:51 +03:00
</div>
<div id="lastUploadLog"></div>
</div>
<!-- display images from server -->
<div class="container">
<div id="images_list">
<div class="foto-block row" v-for="image in imagesList">
<div class="image col-md-3">
2017-08-02 07:55:54 +03:00
<img v-bind:src="image.thumbnail_url">
2017-08-03 08:47:39 +03:00
<div class="image_title">
{{ image.filename }}
</div>
2017-08-01 17:59:51 +03:00
</div>
<div class="foto-notes col-md-3">
2017-08-03 08:47:39 +03:00
<div class="image-scale image-original">
<div class="image-scale-url">
<a v-bind:href="image.original_url">Original</a>
</div>
<div @click="copyText" class="copy-img">
&lt;img src={{ hostname+image.original_url }}&gt;
</div>
<div @click="copyText" class="copy-bb-more">
[MORE=&lt;img src={{ hostname+image.thumbnail_url }}&gt;]&lt;img src={{ hostname+image.original_url }}&gt;[/MORE]
</div>
</div>
<div class="image-scale" v-for="scale in image.scales">
<div class="image-scale-url">
<a v-bind:href="scale.url">{{ scale.size }}</a>
</div>
<div @click="copyText" class="copy-img">
&lt;img src={{ hostname+scale.url }}&gt;
</div>
<div @click="copyText" class="copy-bb-more">
[MORE=&lt;img src={{ hostname+image.thumbnail_url }}&gt;]&lt;img src={{ hostname+scale.url }}&gt;[/MORE]
</div>
</div>
2017-08-01 17:59:51 +03:00
</div>
</div>
</div>
</div>
<script>
var apiURL = '<%= url_for('get_images') %>'
2017-08-01 21:04:12 +03:00
var hostname = window.location.protocol+"//"+window.location.host;
2017-08-01 17:59:51 +03:00
var demo = new Vue({
el: '#images_list',
data: {
imagesList: null
},
created: function () {
this.fetchData()
},
methods: {
fetchData: function () {
var xhr = new XMLHttpRequest()
var self = this
xhr.open('GET', apiURL)
xhr.onload = function () {
self.imagesList = JSON.parse(xhr.responseText)
}
xhr.send()
2017-08-01 21:04:12 +03:00
},
copyText(event) {
2017-08-01 21:05:58 +03:00
//TODO: rewrite it to vue/JS from jquery
2017-08-01 21:04:12 +03:00
var $temp = $("<input>");
$("body").append($temp);
2017-08-03 09:10:23 +03:00
$temp.val($(event.target).text().trim()).select();
2017-08-01 21:04:12 +03:00
document.execCommand("copy");
$temp.remove();
},
2017-08-01 17:59:51 +03:00
}
2017-08-01 21:04:12 +03:00
2017-08-01 17:59:51 +03:00
})
</script>