259 lines
5.9 KiB
HTML
259 lines
5.9 KiB
HTML
<!doctype html>
|
|
<html lang="ja">
|
|
<head>
|
|
<title>Adobe Photo Editor - TheDesk</title>
|
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
|
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
|
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
|
<link href="./css/auth.css" type="text/css" rel="stylesheet">
|
|
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
|
<link href='./css/tl.css' rel='stylesheet' type='text/css'>
|
|
<link href='./css/userdata.css' rel='stylesheet' type='text/css'>
|
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
|
<style>
|
|
#cb-drag {
|
|
margin-bottom: 8px;
|
|
padding: 24px 0;
|
|
text-align: center;
|
|
}
|
|
#cb-drag p {
|
|
font-weight: bold;
|
|
text-align: center;
|
|
}
|
|
#cb-file {
|
|
cursor: pointer;
|
|
}
|
|
#cb-display {
|
|
margin-bottom: 0;
|
|
}
|
|
#cb-display p {
|
|
margin-top: 8px;
|
|
margin-bottom: 0;
|
|
line-height: 1.4;
|
|
}
|
|
.cb-div {
|
|
padding: 16px;
|
|
margin-bottom: 8px;
|
|
}
|
|
.cb-image {
|
|
cursor: pointer;
|
|
}
|
|
|
|
</style>
|
|
<meta charset="utf-8">
|
|
</head>
|
|
<body id="mainView">
|
|
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
|
<script type="text/javascript" src="./js/platform/first.js"></script>
|
|
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
|
<script type="text/javascript" src="./js/ui/tips.js"></script>
|
|
<script type="text/javascript" src="./js/common/time.js"></script>
|
|
<script type="text/javascript" src="./js/common/modal.js"></script>
|
|
<div>
|
|
<div id="cb-drag">
|
|
<p>ここに画像ファイルをドラッグし、画像をクリックしてください。</p>
|
|
<input type="file" id="cb-file">
|
|
</div>
|
|
<div id="cb-display"></div>
|
|
</div>
|
|
<script type="text/javascript" src="https://dme0ih8comzn4.cloudfront.net/imaging/v2/editor.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
var dragAndDrop = (function (window, document) {
|
|
|
|
"use strict";
|
|
|
|
var drag = document.getElementById("mainView");
|
|
var disp = document.getElementById("cb-display");
|
|
var file = document.getElementById("cb-file");
|
|
|
|
function makeView(data) {
|
|
|
|
var div, img, customEvent;
|
|
var metaData = "<p>■ファイル名: <b>" + data.name + "</b><br>■容量: <b>" + data.size + "</b>バイト</p>";
|
|
|
|
div = document.createElement("div");
|
|
div.setAttribute("class", "cb-div");
|
|
|
|
img = document.createElement("img");
|
|
img.src = data.url;
|
|
img.setAttribute("class", "cb-image");
|
|
img.style.maxWidth = "100%";
|
|
img.style.height = "auto";
|
|
|
|
div.appendChild(img);
|
|
img.insertAdjacentHTML("afterend", metaData);
|
|
disp.appendChild(div);
|
|
|
|
customEvent = document.createEvent("HTMLEvents");
|
|
customEvent.initEvent("makeView", true, false);
|
|
div.dispatchEvent(customEvent);
|
|
|
|
}
|
|
|
|
function readImage(e) {
|
|
|
|
var f = (e.dataTransfer) ? e.dataTransfer.files : e.target.files;
|
|
|
|
for (var i = 0, l = f.length; i < l; i++) {
|
|
|
|
var reader = new FileReader();
|
|
|
|
reader.onload = (function (f) {
|
|
|
|
var imageData = {};
|
|
|
|
return function (evt) {
|
|
|
|
if (f.type === "image/gif" || f.type === "image/png" || f.type === "image/jpeg") {
|
|
|
|
imageData.type = f.type;
|
|
imageData.name = f.name;
|
|
imageData.size = f.size;
|
|
imageData.date = f.lastModifiedDate.toLocaleDateString();
|
|
imageData.url = evt.target.result;
|
|
makeView(imageData);
|
|
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
};
|
|
|
|
})(f[i]);
|
|
|
|
reader.readAsDataURL(f[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function dragFiles() {
|
|
|
|
drag.addEventListener("drop", function (e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
readImage(e);
|
|
}, false);
|
|
|
|
drag.addEventListener("dragover", function (e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
}, false);
|
|
|
|
}
|
|
|
|
function uploadFiles() {
|
|
|
|
file.addEventListener("change", function(e) {
|
|
readImage(e);
|
|
}, false);
|
|
|
|
}
|
|
|
|
return {
|
|
init: function () {
|
|
dragFiles();
|
|
uploadFiles();
|
|
}
|
|
};
|
|
|
|
})(this, this.document);
|
|
|
|
var photoEditor = (function (window, document) {
|
|
|
|
"use strict";
|
|
|
|
var featherEditor = new Aviary.Feather({
|
|
apiKey: "ffee425017ab44b18ce95dab98a5cdc1",
|
|
onSave: function(imageID, newURL) {
|
|
var img1 = document.getElementById(imageID);
|
|
img1.src = newURL;
|
|
var electron = require("electron");
|
|
var ipc = electron.ipcRenderer;
|
|
ipc.send('bmp-image', [newURL,0]);
|
|
window.close();
|
|
}
|
|
});
|
|
|
|
function clearImage() {
|
|
this.parentNode.style.display = "none";
|
|
}
|
|
|
|
function launchEditor(id, src) {
|
|
featherEditor.launch({
|
|
image: id,
|
|
url: src
|
|
});
|
|
return false;
|
|
}
|
|
|
|
function editPhoto() {
|
|
//console.log(this);
|
|
var id = this.getAttribute("id");
|
|
var src = this.getAttribute("src");
|
|
launchEditor(id, src);
|
|
}
|
|
|
|
function makeButton() {
|
|
var button = document.createElement("button");
|
|
button.setAttribute("style",
|
|
"width: 64px;"
|
|
+ " line-height: 24px;"
|
|
+ " background-color: #37474F;"
|
|
+ " color: #fff;"
|
|
+ " border: none;"
|
|
+ " cursor: pointer;"
|
|
+ " border-radius: 2px;"
|
|
+ " font-size: 14px;"
|
|
+ " position: absolute;"
|
|
+ " text-align: center;"
|
|
+ " top: 16px;"
|
|
+ " right: 8px;"
|
|
+ " padding: 0;"
|
|
+ " z-index: 1000;"
|
|
);
|
|
button.innerHTML = "削除";
|
|
return button;
|
|
}
|
|
|
|
function listener() {
|
|
|
|
var disp = document.getElementById("cb-display");
|
|
|
|
disp.addEventListener("makeView", function () {
|
|
|
|
var image = document.querySelectorAll(".cb-image");
|
|
var button = [];
|
|
|
|
for (var i = 0, l = image.length; i < l; i++) {
|
|
|
|
button[i] = makeButton();
|
|
image[i].setAttribute("id", "cb-image_" + i);
|
|
image[i].parentNode.style.position = "relative";
|
|
image[i].parentNode.appendChild(button[i]);
|
|
|
|
button[i].addEventListener("click", clearImage, false);
|
|
image[i].addEventListener("click", editPhoto, false);
|
|
}
|
|
|
|
}, false);
|
|
|
|
}
|
|
|
|
return {
|
|
init: function () {
|
|
listener();
|
|
}
|
|
};
|
|
|
|
})(this, this.document);
|
|
|
|
dragAndDrop.init();
|
|
photoEditor.init();
|
|
</script>
|
|
|
|
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
|
<script type="text/javascript" src="./js/platform/end.js"></script>
|
|
</body>
|
|
</html> |