SSL files upload feature added

This commit is contained in:
Dima Malishev 2011-09-11 00:35:57 +03:00
parent 772d8a2909
commit e1011048bd
5 changed files with 69 additions and 23 deletions

View file

@ -282,6 +282,29 @@ App.Helpers.closeInnerPopup = function(evt)
$('#inner-popup').remove(); $('#inner-popup').remove();
} }
App.Helpers.getUploadUrl = function()
{
var url_parts = location.href.split('#');
if (url_parts.length > 1) {
var tab = url_parts[url_parts.length - 1];
if ($.inArray(tab, App.Constants.TABS) != -1) {
App.Tmp.loadTAB = tab;
}
}
var url_parts = location.href.split('?', 1);
var url = url_parts[0];
url_parts = url.split('/');
if (url_parts[url_parts.length -1] == 'index.html') {
url_parts[url_parts.length -1] = 'vesta/upload.php';
}
else {
url_parts.push('vesta/upload.php');
}
return url_parts.join('/');
}
App.Helpers.getBackendUrl = function() App.Helpers.getBackendUrl = function()
{ {
var url_parts = location.href.split('#'); var url_parts = location.href.split('#');

View file

@ -475,9 +475,13 @@ App.HTML.Build.dns_subrecord = function(record)
App.HTML.Build.ssl_key_file = function() App.HTML.Build.ssl_key_file = function()
{ {
return '<iframe src="http://dev.vestacp.com:8083/vesta/upload.php?action=show&type=key" width="500px;" height="50px;" framevorder="0" scroll="no">..</iframe>'; return '<iframe src="'+App.Helpers.getUploadUrl()+'?action=show&type=key" width="500px;" height="53px;" framevorder="0" scroll="no">..</iframe>';
} }
App.HTML.Build.ssl_cert_file = function()
{
return '<iframe src="'+App.Helpers.getUploadUrl()+'?action=show&type=cert" width="500px;" height="53px;" framevorder="0" scroll="no">..</iframe>';
}
App.HTML.Build.user_selects = function(tpl, options) App.HTML.Build.user_selects = function(tpl, options)
{ {

View file

@ -71,10 +71,14 @@ App.Pages.WEB_DOMAIN.new_entry = function(evt)
App.Helpers.updateScreen(); App.Helpers.updateScreen();
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden'); $('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
var ssl_key_upload = App.HTML.Build.ssl_key_file(); var ssl_key_upload = App.HTML.Build.ssl_key_file();
var ssl_cert_upload = App.HTML.Build.ssl_cert_file();
$('#'+form_id).find('.ssl-key-input-dummy:first').replaceWith(ssl_key_upload); $('#'+form_id).find('.ssl-key-input-dummy:first').replaceWith(ssl_key_upload);
$('#'+form_id).find('.ssl-cert-input-dummy:first').replaceWith(ssl_cert_upload);
} }
App.Pages.WEB_DOMAIN.setSSL = function(content, type) App.Pages.WEB_DOMAIN.setSSL = function(type, frame)
{ {
fb.warn(content); var txt = App.Helpers.evalJSON(content);
var ref = frame.frameElement;
$(ref).next('textarea').val(frame.document.getElementById('result').value);
} }

View file

@ -567,12 +567,12 @@ App.Templates.html = {
<div class="form-row ssl-crtfct-box cc">\ <div class="form-row ssl-crtfct-box cc">\
<label for="#" class="field-label">ssl key: <span class="remark">(upload file or insert text)</span></label>\ <label for="#" class="field-label">ssl key: <span class="remark">(upload file or insert text)</span></label>\
<span class="ssl-key-input-dummy">...</span>\ <span class="ssl-key-input-dummy">...</span>\
<textarea name="SSL_KEY" class="textarea">~!:SSL_KEY~!</textarea>\ <textarea name="SSL_KEY" class="textarea ssl-key">~!:SSL_KEY~!</textarea>\
</div>\ </div>\
<div class="form-row ssl-crtfct-box cc">\ <div class="form-row ssl-crtfct-box cc">\
<label for="#" class="field-label">ssl certificate: <span class="remark">(upload file or insert text)</span></label>\ <label for="#" class="field-label">ssl certificate: <span class="remark">(upload file or insert text)</span></label>\
<span class="ssl-cert-input-dummy">...</span>\ <span class="ssl-cert-input-dummy">...</span>\
<textarea name="SSL_CERT" class="textarea">~!:SSL_CERT~!</textarea>\ <textarea name="SSL_CERT" class="textarea ssl-cert">~!:SSL_CERT~!</textarea>\
</div>\ </div>\
</div><!-- // advanced options -->\ </div><!-- // advanced options -->\
</div>\ </div>\

View file

@ -25,9 +25,14 @@ switch ($_GET['action']) {
function pass_contents($content) function pass_contents($content)
{ {
if (trim($content) == '') {
show_form(); print("<span id='msg' style='font-size:9px;color: red;'>Error occured. Please try to upload again</span>");
return;
}
$type = $_GET['type']; $type = $_GET['type'];
print <<<JS print <<<JS
<script type="text/javascript">parent.App.Pages.WEB_DOMAIN.setSSL('{$contents}', '{$type}');</script> <textarea id="result" style="display: none;">{$content}</textarea>
<script type="text/javascript">parent.App.Pages.WEB_DOMAIN.setSSL('{$type}', this);</script>
JS; JS;
} }
@ -35,29 +40,17 @@ function handleUpload()
{ {
if ($_FILES["upload-ssl"]["size"] < 20000) { if ($_FILES["upload-ssl"]["size"] < 20000) {
if ($_FILES["upload-ssl"]["error"] > 0) { if ($_FILES["upload-ssl"]["error"] > 0) {
return show_form() . "Error occured. Please try to upload again"; show_form(); print("<span id='msg' style='font-size:9px;color: red;'>Error occured. Please try to upload again</span>");
return;
} }
else { else {
/*echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";*/
$contents = file_get_contents($_FILES["upload-ssl"]['tmp_name']); $contents = file_get_contents($_FILES["upload-ssl"]['tmp_name']);
return show_form().pass_contents($contents); return show_form().pass_contents($contents);
/*if (file_exists("upload/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
}
else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}*/
} }
} }
else { else {
return show_form() . "Filesize is too large. Please ensure you are uploading correct file"; show_form(); print("<span id='msg' style='font-size:9px;color: red;'>Filesize is too large. Please ensure you are uploading correct file</span>");
return;
} }
} }
@ -71,7 +64,29 @@ function show_form()
} }
print <<<HTML print <<<HTML
<form action="" method="post" enctype="multipart/form-data"><input type="hidden" value="true" name="process"><input type="file" name="upload-ssl" onChange="document.forms[0].submit()"/></form> <script type="text/javascript">
function upload()
{
var l_dot = '';
document.getElementById('form-upl').style.display = 'none';
try {
document.getElementById('msg').style.display = 'none';
} catch(e){};
document.getElementById('form-loading').style.display = 'block';
setInterval(function(){
if (l_dot == '...') {
l_dot = '';
}
l_dot += '.';
document.getElementById('form-loading').innerHTML = 'Processing'+l_dot;
}, 500);
setTimeout(function() {
document.forms[0].submit();
}, 1000);
}
</script>
<p id="form-loading" style="font-size:11px;color:#333;"></p>
<form id="form-upl" action="" method="post" style="padding:0;margin:0" enctype="multipart/form-data"><input type="hidden" value="true" name="process"><input type="file" name="upload-ssl" onChange="upload();"/></form>
HTML; HTML;
} }