Răsfoiți Sursa

SSL files upload feature added

Dima Malishev 14 ani în urmă
părinte
comite
e1011048bd
5 a modificat fișierele cu 69 adăugiri și 23 ștergeri
  1. 23 0
      web/js/helpers.js
  2. 5 1
      web/js/html.js
  3. 6 2
      web/js/pages.js
  4. 2 2
      web/js/templates.js
  5. 33 18
      web/vesta/upload.php

+ 23 - 0
web/js/helpers.js

@@ -282,6 +282,29 @@ App.Helpers.closeInnerPopup = function(evt)
     $('#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()
 {
     var url_parts = location.href.split('#');

+ 5 - 1
web/js/html.js

@@ -475,9 +475,13 @@ App.HTML.Build.dns_subrecord = function(record)
 
 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)
 {

+ 6 - 2
web/js/pages.js

@@ -71,10 +71,14 @@ App.Pages.WEB_DOMAIN.new_entry = function(evt)
     App.Helpers.updateScreen(); 
     $('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');   
     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-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);
 }

+ 2 - 2
web/js/templates.js

@@ -567,12 +567,12 @@ App.Templates.html = {
 							<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>\
 								<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 class="form-row ssl-crtfct-box cc">\
 								<label for="#" class="field-label">ssl certificate: <span class="remark">(upload file or insert text)</span></label>\
 								<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><!-- // advanced options -->\
 						</div>\

+ 33 - 18
web/vesta/upload.php

@@ -25,9 +25,14 @@ switch ($_GET['action']) {
 
 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'];
     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;
 }
 
@@ -35,29 +40,17 @@ function handleUpload()
 {
     if ($_FILES["upload-ssl"]["size"] < 20000) {
 	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 {
-	    /*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']);
 	    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 {
-       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
-	<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;
 }