Browse Source

Feature, restore original file content of theme file in template editor

Vova Tkach 5 years ago
parent
commit
bde04c4157

+ 20 - 0
assets/cp.scripts.js

@@ -3761,6 +3761,26 @@
 					});
 					});
 				}
 				}
 			},
 			},
+
+			ActionRestoreThemeFile: function(action_name, file_name, message) {
+				if(confirm(message)) {
+					$.ajax({
+						type: "POST",
+						url: '/cp/',
+						data: {
+							action: action_name,
+							file: file_name,
+						}
+					}).done(function(data) {
+						if(IsDebugMode()) console.log('done', data);
+						AjaxDone(data);
+					}).fail(function(xhr, status, error) {
+						if(IsDebugMode()) console.log('fail', xhr, status, error);
+						AjaxFail(xhr.responseText, status, error);
+					});
+				}
+				return false;
+			},
 		};
 		};
 	}(window, $);
 	}(window, $);
 
 

File diff suppressed because it is too large
+ 0 - 0
assets/cp.scripts.js.go


+ 4 - 1
modules/module_template.go

@@ -89,13 +89,16 @@ func (this *Modules) RegisterModule_Template() *Module {
 						CallBack: func(field *builder.DataFormField) string {
 						CallBack: func(field *builder.DataFormField) string {
 							return `<div class="form-group n1">` +
 							return `<div class="form-group n1">` +
 								`<div class="row">` +
 								`<div class="row">` +
-								`<div class="col-md-12">` +
+								`<div class="col-9">` +
 								`<div>` +
 								`<div>` +
 								`<select class="form-control ignore-lost-data" id="lbl_file" name="file" onchange="setTimeout(function(){$('#lbl_file').val('` + selected_file + `')},500);document.location='/cp/` + wrap.CurrModule + `/?file='+encodeURI(this.value);">` +
 								`<select class="form-control ignore-lost-data" id="lbl_file" name="file" onchange="setTimeout(function(){$('#lbl_file').val('` + selected_file + `')},500);document.location='/cp/` + wrap.CurrModule + `/?file='+encodeURI(this.value);">` +
 								list_of_files +
 								list_of_files +
 								`</select>` +
 								`</select>` +
 								`</div>` +
 								`</div>` +
 								`</div>` +
 								`</div>` +
+								`<div class="col-3">` +
+								`<button type="button" class="btn btn-danger" onclick="return fave.ActionRestoreThemeFile('template-restore-file','` + selected_file + `','Are you sure want to restore theme file?');">Restore</button>` +
+								`</div>` +
 								`</div>` +
 								`</div>` +
 								`</div>`
 								`</div>`
 						},
 						},

+ 39 - 0
modules/module_template_act_restore_file.go

@@ -0,0 +1,39 @@
+package modules
+
+import (
+	"io/ioutil"
+	"os"
+
+	ThemeFiles "golang-fave/assets/template"
+	"golang-fave/engine/wrapper"
+)
+
+func (this *Modules) RegisterAction_TemplateRestoreFile() *Action {
+	return this.newAction(AInfo{
+		WantDB:    true,
+		Mount:     "template-restore-file",
+		WantAdmin: true,
+	}, func(wrap *wrapper.Wrapper) {
+		pf_file := wrap.R.FormValue("file")
+
+		if pf_file == "" {
+			wrap.MsgError(`Please specify file name`)
+			return
+		}
+
+		if _, ok := ThemeFiles.AllData[pf_file]; !ok {
+			wrap.MsgError(`Template file is not defined in engine`)
+			return
+		}
+
+		// Restore file content
+		err := ioutil.WriteFile(wrap.DTemplate+string(os.PathSeparator)+pf_file, ThemeFiles.AllData[pf_file], 0664)
+		if err != nil {
+			wrap.MsgError(err.Error())
+			return
+		}
+
+		// Reload current page
+		wrap.Write(`window.location.reload(false);`)
+	})
+}

Some files were not shown because too many files changed in this diff