Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drag and Drop #68

Closed
wants to merge 52 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
e7c584d
Update xeit.html
saschanaz Jul 9, 2013
7760aaf
Merge pull request #1 from SaschaNaz/patch-1
saschanaz Jul 9, 2013
56723fb
Merge pull request #2 from SaschaNaz/master
saschanaz Jul 9, 2013
722531b
file loader
saschanaz Jul 10, 2013
99eb951
Merge pull request #3 from SaschaNaz/master
saschanaz Jul 10, 2013
c85326f
meta charset
saschanaz Jul 10, 2013
a5d9771
URL 'or' file selection, multiple file support
saschanaz Jul 10, 2013
e709361
Merge pull request #4 from SaschaNaz/master
saschanaz Jul 10, 2013
daeb403
close popup when file type is wrong
saschanaz Jul 10, 2013
b270b2a
Merge pull request #5 from SaschaNaz/master
saschanaz Jul 10, 2013
bd070ae
file canceling works without form tag
saschanaz Jul 11, 2013
343b0db
Merge pull request #6 from SaschaNaz/master
saschanaz Jul 11, 2013
7590434
Fixed layout
saschanaz Jul 12, 2013
86f654e
Fixed layout 2
saschanaz Jul 12, 2013
1b73a9a
Merge pull request #7 from SaschaNaz/master
saschanaz Jul 12, 2013
08b1686
Fixed layout 3
saschanaz Jul 12, 2013
2e01949
Merge pull request #8 from SaschaNaz/master
saschanaz Jul 12, 2013
50b3c84
Fixed layout 4. I'm stupid :/ T_T aoehhhhaohh
saschanaz Jul 12, 2013
2bcd117
Merge pull request #9 from SaschaNaz/master
saschanaz Jul 12, 2013
2860fde
stupid 2
saschanaz Jul 12, 2013
4eb7b12
stupid 3
saschanaz Jul 12, 2013
03437dc
Merge pull request #10 from SaschaNaz/master
saschanaz Jul 12, 2013
dee9749
This was the problem, I'm super stupid
saschanaz Jul 12, 2013
ebe0116
Merge pull request #11 from SaschaNaz/master
saschanaz Jul 12, 2013
098d455
file drag and drop
Jul 22, 2013
8665713
file drag and drop
Jul 22, 2013
4aa0758
relativity
Jul 22, 2013
ec4a267
! and .
Jul 22, 2013
8a76cdb
! and .
Jul 22, 2013
e9d67fc
drag'n'drop, or "click"
Jul 22, 2013
aba4ba7
drag'n'drop or "click"
saschanaz Jul 22, 2013
e44fd73
utf->UTF
saschanaz Jul 23, 2013
7152324
merge commit
saschanaz Jul 23, 2013
0590282
remove mistake
saschanaz Jul 23, 2013
a74cea9
commit improvements
saschanaz Jul 23, 2013
ba452d2
for IE10 compatibility
saschanaz Jul 23, 2013
26e53c7
Merge pull request #15 from SaschaNaz/master
saschanaz Jul 23, 2013
a085d20
original redirection
saschanaz Jul 25, 2013
b1b6f4d
Merge pull request #16 from SaschaNaz/master
saschanaz Jul 25, 2013
3afea84
updated inisafe mail format
saschanaz Aug 13, 2013
05da028
Merge pull request #17 from SaschaNaz/master
saschanaz Aug 13, 2013
514ef7c
Update index.html
saschanaz Aug 18, 2013
4082726
Merge pull request #18 from SaschaNaz/master
saschanaz Aug 18, 2013
5c7c67d
Merge pull request #19 from tomyun/master
saschanaz Aug 19, 2013
0fb0723
SKT update
saschanaz Aug 19, 2013
fb2011c
Merge pull request #20 from SaschaNaz/master
saschanaz Aug 19, 2013
ac56500
maintenance
saschanaz Sep 12, 2013
6759ec4
Merge pull request #23 from SaschaNaz/gh-pages
saschanaz Sep 12, 2013
938283c
Merge pull request #24 from tomyun/master
saschanaz Feb 8, 2014
2ef34bd
file parser fixed
saschanaz Feb 8, 2014
037dd58
DOMContentLoaded
saschanaz Feb 8, 2014
d77f4d7
display none
saschanaz Feb 8, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions css/xeit.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ body {
padding-top: 40px;
}

.filedrop * {
pointer-events: none;
}

#mail-content {
position: fixed;
top: 40px;
Expand Down
20 changes: 10 additions & 10 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=http://tomyun.github.io/xeit/xeit.html">
<meta property="fb:admins" content="1377353823" />
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-40224792-1','github.io');ga('send','pageview');</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=./xeit.html">
<meta property="fb:admins" content="1377353823" />
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','UA-40224792-1','github.io');ga('send','pageview');</script>
</head>
<body>
</body>
</html>
258 changes: 129 additions & 129 deletions js/xeit.js
Original file line number Diff line number Diff line change
@@ -1,129 +1,129 @@
var xeit = (function () {
"use strict";

function parse($doc, html) {
if ($('#XEIViewer').length || (html.indexOf('PrintObjectTag') > -1 && html.indexOf('XEIViewer') > -1)) {
return {
func: 'init',
opts: { plugin: 'SoftForum' },
args: [
html,
$('param[name="smime_header"]').val(),
$('param[name="smime_body"]').val(),
$('param[name="info_msg"]').val(),
$('param[name="ui_option"]').val(),
$('param[name="ui_desc"]').val()
]
};
} else if ($('#IniMasPluginObj').length || (html.indexOf('activeControl') > -1 && html.indexOf('IniMasPlugin') > -1)) {
//HACK: IE에서만 동작하는 activeControl() (function.js) 이슈 회피.
var body = html.replace(
/activeControl\(([\s]*['"])/,
"var activeControl = function (a, b, c) {" +
"var d = document.createElement('div');" +
"d.innerHTML = \"<OBJECT ID='IniMasPluginObj'>\" + a;" +
"d.firstChild.innerHTML = b + c;" +
"document.getElementById('embedControl').appendChild(d);" +
"}($1"
).replace(
/^[\s\S]*<body.*?>|<\/body>[\s\S]*$/ig,
''
);
$doc.empty().append($.parseHTML(body, true));

return {
func: 'init',
opts: { plugin: 'IniTech' },
args: [
html,
$('param[name="IniSMContents"]').val(),
$('param[name="Question"]').val(),
$('param[name="AttachedFile"]').val()
]
};
} else if ($('#IniCrossMailObj').length) {
return {
func: 'init',
opts: { plugin: 'IniTech' },
args: [
html,
$('param[name="IniSMContents"]').val(),
$('param[name="Question"]').val(),
$('param[name="AttachedFile"]').val(),
$('param[name="OptData"]').val()
]
};
} else if ($('#JXCEAL').length) {
return {
func: 'init',
opts: { plugin: 'Soft25' },
args: [
html,
$('#JSEncContents').val()
]
};
} else if ($('#MailDec').length) {
return {
func: 'init',
opts: { plugin: 'Natingtel' },
args: [
html,
$('param[name="DocumentMail"]').val()
]
};
} else {
return {
func: 'init',
opts: { plugin: 'Vendor' },
args: []
}
}
}

function check(html) {
//HACK: <object> 태그의 상위 노드로써 DOM에 임시로 추가하여 query 수행.
var $doc = $('<div>', { id: 'Xeit-temp' }).hide().appendTo($('body')).append($.parseHTML(html));
var info = parse($doc, html);
$doc.remove();
return info;
}

var worker = new Worker('js/worker.js');
function work(func, opts, args, success, failure) {
var messageHandler = function (e) {
if (e.data.func == func) {
success(e.data.resp);
removeHandlers();
}
};
worker.addEventListener('message', messageHandler);

var errorHandler = function (e) {
failure(e);
removeHandlers();
};
worker.addEventListener('error', errorHandler);

function removeHandlers() {
worker.removeEventListener('message', messageHandler);
worker.removeEventListener('error', errorHandler);
}

worker.postMessage({
func: func,
opts: opts,
args: args
});
}

return {
init: function (html, success, failure) {
var info = check(html);
work(info.func, info.opts, info.args, success, failure);
},

load: function (password, success, failure) {
work('load', {}, [password], success, failure);
}
};
})();
var xeit = (function () {
"use strict";
function parse($doc, html) {
if ($('#XEIViewer').length || (html.indexOf('PrintObjectTag') > -1 && html.indexOf('XEIViewer') > -1)) {
return {
func: 'init',
opts: { plugin: 'SoftForum' },
args: [
html,
$('param[name="smime_header"]').val(),
$('param[name="smime_body"]').val(),
$('param[name="info_msg"]').val(),
$('param[name="ui_option"]').val(),
$('param[name="ui_desc"]').val()
]
};
} else if ($('#IniMasPluginObj').length || (html.indexOf('activeControl') > -1 && html.indexOf('IniMasPlugin') > -1)) {
//HACK: IE에서만 동작하는 activeControl() (function.js) 이슈 회피.
var body = html.replace(
/activeControl\(([\s]*['"])/,
"var activeControl = function (a, b, c) {" +
"var d = document.createElement('div');" +
"d.innerHTML = \"<OBJECT ID='IniMasPluginObj'>\" + a;" +
"d.firstChild.innerHTML = b + c;" +
"document.getElementById('embedControl').appendChild(d);" +
"}($1"
).replace(
/^[\s\S]*<body.*?>|<\/body>[\s\S]*$/ig,
''
);
$doc.empty().append($.parseHTML(body, true));
return {
func: 'init',
opts: { plugin: 'IniTech' },
args: [
html,
$('param[name="IniSMContents"]').val(),
$('param[name="Question"]').val(),
$('param[name="AttachedFile"]').val()
]
};
} else if ($('#IniCrossMailObj').length) {
return {
func: 'init',
opts: { plugin: 'IniTech' },
args: [
html,
$('param[name="IniSMContents"]').val(),
$('param[name="Question"]').val(),
$('param[name="AttachedFile"]').val(),
$('param[name="OptData"]').val()
]
};
} else if ($('#JXCEAL').length) {
return {
func: 'init',
opts: { plugin: 'Soft25' },
args: [
html,
$('#JSEncContents').val()
]
};
} else if ($('#MailDec').length) {
return {
func: 'init',
opts: { plugin: 'Natingtel' },
args: [
html,
$('param[name="DocumentMail"]').val()
]
};
} else {
return {
func: 'init',
opts: { plugin: 'Vendor' },
args: []
}
}
}
function check(html) {
//HACK: <object> 태그의 상위 노드로써 DOM에 임시로 추가하여 query 수행.
var $doc = $('<div>', { id: 'Xeit-temp' }).hide().appendTo($('body')).append($.parseHTML(html));
var info = parse($doc, html);
$doc.remove();
return info;
}
var worker = new Worker('js/worker.js');
function work(func, opts, args, success, failure) {
var messageHandler = function (e) {
if (e.data.func == func) {
success(e.data.resp);
removeHandlers();
}
};
worker.addEventListener('message', messageHandler);
var errorHandler = function (e) {
failure(e);
removeHandlers();
};
worker.addEventListener('error', errorHandler);
function removeHandlers() {
worker.removeEventListener('message', messageHandler);
worker.removeEventListener('error', errorHandler);
}
worker.postMessage({
func: func,
opts: opts,
args: args
});
}
return {
init: function (html, success, failure) {
var info = check(html);
work(info.func, info.opts, info.args, success, failure);
},
load: function (password, success, failure) {
work('load', {}, [password], success, failure);
}
};
})();
Loading