فهرست منبع

HUE-683 [beeswax] 'Save as' button does not ask for a name

Add a popup asking for some optional name and description for the query.
An empty query can not be saved
Romain Rigaux 13 سال پیش
والد
کامیت
9083b1e7b7
2فایلهای تغییر یافته به همراه32 افزوده شده و 6 حذف شده
  1. 30 4
      apps/beeswax/src/beeswax/templates/execute.mako
  2. 2 2
      apps/beeswax/src/beeswax/views.py

+ 30 - 4
apps/beeswax/src/beeswax/templates/execute.mako

@@ -284,9 +284,6 @@ ${layout.menubar(section='query')}
 </div>
 
 
-
-
-
 <div id="chooseFile" class="modal hide fade">
 	<div class="modal-header">
 		<a href="#" class="close" data-dismiss="modal">&times;</a>
@@ -300,6 +297,26 @@ ${layout.menubar(section='query')}
 	</div>
 </div>
 
+<div id="saveAs" class="modal hide fade">
+    <div class="modal-header">
+        <a href="#" class="close" data-dismiss="modal">&times;</a>
+        <h3>Choose a name</h3>
+    </div>
+    <div class="modal-body">
+        <div class="clearfix">
+            <label>Name</label>
+            ${comps.field(form.saveform['name'])}
+        </div>
+        <div class="clearfix">
+            <label>Description</label>
+            ${comps.field(form.saveform['desc'])}
+        </div>
+    </div>
+    <div class="modal-footer">
+        <button id="saveAsNameBtn" class="btn primary">Save</button>
+    </div>
+</div>
+
 <style>
 	#filechooser {
 		min-height:100px;
@@ -361,9 +378,18 @@ ${layout.menubar(section='query')}
 
 		$("#saveQueryAs").click(function(){
 			$("<input>").attr("type","hidden").attr("name","saveform-saveas").attr("value","Save As...").appendTo($("#advancedSettingsForm"));
-			checkAndSubmit();
+			$("#saveAs").modal("show");
 		});
 
+        $("#saveAsNameBtn").click(function(){
+             $("<input>").attr("type","hidden").attr("name","saveform-name")
+                 .attr("value", $("input[name=saveform-name]").val()).appendTo($("#advancedSettingsForm"));
+             $("<input>").attr("type","hidden").attr("name","saveform-desc")
+                 .attr("value", $("input[name=saveform-desc]").val()).appendTo($("#advancedSettingsForm"));
+
+            checkAndSubmit();
+        });
+
 		$("#explainQuery").click(function(){
 			$("<input>").attr("type","hidden").attr("name","button-explain").attr("value","Explain").appendTo($("#advancedSettingsForm"));
 			checkAndSubmit();

+ 2 - 2
apps/beeswax/src/beeswax/views.py

@@ -298,7 +298,7 @@ def execute_query(request, design_id=None):
       to_explain = request.POST.has_key('button-explain')
       to_submit = request.POST.has_key('button-submit')
       # Always validate the saveform, which will tell us whether it needs explicit saving
-      if not form.saveform.is_valid():
+      if not form.is_valid():
         break
       to_save = form.saveform.cleaned_data['save']
       to_saveas = form.saveform.cleaned_data['saveas']
@@ -311,7 +311,7 @@ def execute_query(request, design_id=None):
         action = urlresolvers.reverse(execute_query, kwargs=dict(design_id=design.id))
 
       # We're not going to process the form. Simply re-render it.
-      if not to_explain and not to_submit or not form.is_valid():
+      if not to_explain and not to_submit:
         break
 
       query_str = _strip_trailing_semicolon(form.query.cleaned_data["query"])