[ui] setup wizard
diff --git a/erpnext/setup/page/setup_wizard/sample_blog_post.html b/erpnext/setup/page/setup_wizard/data/sample_blog_post.html
similarity index 100%
rename from erpnext/setup/page/setup_wizard/sample_blog_post.html
rename to erpnext/setup/page/setup_wizard/data/sample_blog_post.html
diff --git a/erpnext/setup/page/setup_wizard/sample_home_page.css b/erpnext/setup/page/setup_wizard/data/sample_home_page.css
similarity index 100%
rename from erpnext/setup/page/setup_wizard/sample_home_page.css
rename to erpnext/setup/page/setup_wizard/data/sample_home_page.css
diff --git a/erpnext/setup/page/setup_wizard/sample_home_page.html b/erpnext/setup/page/setup_wizard/data/sample_home_page.html
similarity index 100%
rename from erpnext/setup/page/setup_wizard/sample_home_page.html
rename to erpnext/setup/page/setup_wizard/data/sample_home_page.html
diff --git a/erpnext/setup/page/setup_wizard/default_website.py b/erpnext/setup/page/setup_wizard/default_website.py
index 9bbdab0..5dbb7fc 100644
--- a/erpnext/setup/page/setup_wizard/default_website.py
+++ b/erpnext/setup/page/setup_wizard/default_website.py
@@ -28,8 +28,8 @@
'<p>'+_("This is an example website auto-generated from ERPNext")+"</p>"+\
'<p><a class="btn btn-primary" href="/login">Login</a></p>',
"description": self.company + ":" + (self.tagline or ""),
- "css": frappe.get_template("setup/page/setup_wizard/sample_home_page.css").render(),
- "main_section": frappe.get_template("setup/page/setup_wizard/sample_home_page.html").render({
+ "css": frappe.get_template("setup/page/setup_wizard/data/sample_home_page.css").render(),
+ "main_section": frappe.get_template("setup/page/setup_wizard/data/sample_home_page.html").render({
"company": self.company, "tagline": (self.tagline or "")
})
}).insert()
@@ -88,7 +88,7 @@
"blogger": blogger.name,
"blog_category": blog_category.name,
"blog_intro": "My First Blog",
- "content": frappe.get_template("setup/page/setup_wizard/sample_blog_post.html").render(),
+ "content": frappe.get_template("setup/page/setup_wizard/data/sample_blog_post.html").render(),
}).insert()
def test():
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.css b/erpnext/setup/page/setup_wizard/setup_wizard.css
index 46f9936..6ff5b12 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.css
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.css
@@ -3,7 +3,7 @@
top: 0px; bottom: 0px;
left: 0px; right: 0px;
overflow: auto;
- padding-top: 60px;
+ padding-top: 30px;
}
.setup-wizard-wrapper {
margin: 0px auto;
@@ -15,13 +15,12 @@
}
}
-#page-setup-wizard .panel {
- background-color: #fff;
-}
-
-#page-setup-wizard .panel-body {
-}
-
#page-setup-wizard .col-md-6 .control-input .btn {
width: 100%;
}
+
+#page-setup-wizard .form-section {
+ margin: 0px -15px;
+ padding: 0px;
+ max-width: 400px;
+}
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js
index 6b847e0..9a557c2 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.js
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.js
@@ -38,11 +38,6 @@
})
},
title: __("Welcome"),
- welcome_html: '<h1 class="text-muted text-center"><i class="icon-magic"></i></h1>\
- <h2 class="text-center">'+__('ERPNext Setup')+'</h2>\
- <p class="text-center" style="margin: 0px 100px">' +
- __('Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!') +
- '</p>',
working_html: function() { return '<h3 class="text-muted text-center"><i class="icon-refresh icon-spin"></i></h3>\
<h2 class="text-center">'+__('Setting up...')+'</h2>\
<p class="text-center">' +
@@ -64,22 +59,23 @@
reqd:1
},
],
- help: __("Welcome to ERPNext. Please select your language to begin the Setup Wizard."),
+ help: "",
onload: function(slide) {
var me = this;
+ var select = slide.get_field("language");
if (!this.language_list) {
frappe.call({
method: "erpnext.setup.page.setup_wizard.setup_wizard.load_languages",
callback: function(r) {
me.language_list = r.message;
- slide.get_input("language")
- .add_options(r.message)
- .val("english");
+ select.df.options = me.language_list;
+ select.set_input("english");
}
})
} else {
- slide.get_input("language").add_options(this.language_list);
+ select.df.options = this.language_list;
+ select.refresh();
}
slide.get_input("language").on("change", function() {
@@ -95,7 +91,10 @@
$.each(slide.wiz.slide_dict, function(key, s) {
s.make();
});
- slide.get_input("language").val(lang);
+
+ // select is re-made after language change
+ var select = slide.get_field("language");
+ select.set_input(lang);
}
})
});
@@ -177,11 +176,13 @@
if(country){
var timezone_list = frappe.country_info[country].timezones || [];
$timezone.add_options(timezone_list.sort());
- slide.get_input("currency").val(frappe.country_info[country].currency);
+ slide.get_field("currency").set_input(frappe.country_info[country].currency);
}
// add all timezones at the end, so that user has the option to change it to any timezone
$timezone.add_options([""].concat(frappe.all_timezones));
+ slide.get_field("timezone").set_input($timezone.val());
+
// temporarily set date format
frappe.boot.sysdefaults.date_format = (frappe.country_info[country].date_format
|| "dd-mm-yyyy");
@@ -221,13 +222,13 @@
slide.get_input("company_name").on("change", function() {
var parts = slide.get_input("company_name").val().split(" ");
var abbr = $.map(parts, function(p) { return p ? p.substr(0,1) : null }).join("");
- slide.get_input("company_abbr").val(abbr.slice(0, 5).toUpperCase());
+ slide.get_field("company_abbr").set_input(abbr.slice(0, 5).toUpperCase());
}).val(frappe.boot.sysdefaults.company_name || "").trigger("change");
slide.get_input("company_abbr").on("change", function() {
if(slide.get_input("company_abbr").val().length > 5) {
msgprint("Company Abbreviation cannot have more than 5 characters");
- slide.get_input("company_abbr").val("");
+ slide.get_field("company_abbr").set_input("");
}
});
@@ -235,7 +236,7 @@
var year_end_date =
frappe.datetime.add_days(frappe.datetime.add_months(
frappe.datetime.user_to_obj(slide.get_input("fy_start_date").val()), 12), -1);
- slide.get_input("fy_end_date").val(frappe.datetime.obj_to_user(year_end_date));
+ slide.get_field("fy_end_date").set_input(frappe.datetime.obj_to_user(year_end_date));
});
}
@@ -366,7 +367,6 @@
this.make();
this.slides = this.slides;
this.slide_dict = {};
- //this.show_welcome();
this.welcomed = true;
frappe.set_route(this.page_name, "0");
},
@@ -379,22 +379,6 @@
<div class="panel-body" style="padding: 40px;">%(html)s</div>\
</div>', {html:html}))
},
- show_welcome: function() {
- if(this.$welcome)
- return;
- var me = this;
- this.$welcome = this.get_message(this.welcome_html +
- '<br><p class="text-center"><button class="btn btn-primary">'+__("Start")+'</button></p>')
- .appendTo(this.parent);
-
- this.$welcome.find(".btn").click(function() {
- me.$welcome.toggle(false);
- me.welcomed = true;
- frappe.set_route(me.page_name, "0");
- })
-
- this.current_slide = {"$wrapper": this.$welcome};
- },
show_working: function() {
this.hide_current_slide();
frappe.set_route(this.page_name);
@@ -452,33 +436,8 @@
this.before_load(this);
}
- this.$body = $(repl('<div class="panel panel-default">\
- <div class="panel-heading">\
- <div class="panel-title row">\
- <div class="col-sm-12"><h3 style="margin: 0px;">\
- <i class="%(icon)s text-muted"></i> %(title)s</h3></div>\
- </div>\
- </div>\
- <div class="panel-body">\
- <div class="progress">\
- <div class="progress-bar" style="width: %(width)s%"></div>\
- </div>\
- <div class="row">\
- <div class="col-sm-12">\
- <p>%(help)s</p><br>\
- <div class="form"></div>\
- </div>\
- </div>\
- <hr>\
- <div class="footer">\
- <div class="text-right"><a class="prev-btn hide btn btn-default">'+__('Previous')+'</a> \
- <a class="next-btn hide btn btn-primary">'+__("Next")+'</a> \
- <a class="complete-btn hide btn btn-primary"><b>'+__("Complete Setup")+'</b></a>\
- </div>\
- </div>\
- </div>\
- </div>', {help: __(this.help), title:__(this.title), main_title:__(this.wiz.title), step: this.id + 1,
- width: (flt(this.id + 1) / (this.wiz.slides.length+1)) * 100, icon:this.icon}))
+ this.$body = $(frappe.render_template("setup_wizard_page",
+ {help: __(this.help), title:__(this.title), main_title:__(this.wiz.title), step: this.id + 1 }))
.appendTo(this.$wrapper);
this.body = this.$body.find(".form")[0];
@@ -530,5 +489,8 @@
},
get_input: function(fn) {
return this.form.get_input(fn);
+ },
+ get_field: function(fn) {
+ return this.form.get_field(fn);
}
})
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard_page.html b/erpnext/setup/page/setup_wizard/setup_wizard_page.html
new file mode 100644
index 0000000..81a79a0
--- /dev/null
+++ b/erpnext/setup/page/setup_wizard/setup_wizard_page.html
@@ -0,0 +1,19 @@
+<div>
+ <h3>{%= title %}</h3>
+ <hr>
+ <div class="row">
+ <div class="col-sm-12">
+ <p class="text-muted">{%= help %}</p><br>
+ <div class="form"></div>
+ </div>
+ </div>
+ <br>
+ <div class="footer">
+ <div>
+ <a class="prev-btn hide btn btn-default btn-sm">{%= __("Previous") %}</a>
+ <a class="next-btn hide btn btn-primary btn-sm">{%= __("Next") %}</a>
+ <a class="complete-btn hide btn btn-primary btn-sm"><b>{%= __("Complete Setup") %}</b></a>
+ </div>
+ </div>
+ <br><br>
+</div>