[hub] add register as a seller page
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index a5e4607..a94f6b1 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -31,6 +31,13 @@
 
 	return listing
 
+
+
+@frappe.whitelist()
+def get_valid_items():
+	items = frappe.get_list('Item')
+	return items
+
 @frappe.whitelist()
 def get_item_favourites(start=0, limit=20, fields=["*"], order_by=None):
 	doctype = 'Hub Item'
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.json b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
index 7c7109c..c742c57 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.json
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
@@ -14,20 +14,21 @@
  "fields": [
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "enabled", 
+   "fieldname": "registered", 
    "fieldtype": "Check", 
-   "hidden": 1, 
+   "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Enabled", 
+   "label": "Registered", 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -45,229 +46,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "suspended", 
-   "fieldtype": "Check", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Suspended", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "enabled", 
-   "fieldname": "hub_username", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Hub Username", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "user", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "User", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "User", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_0", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "enabled", 
-   "fieldname": "hub_user_status", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Status", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "depends_on": "enabled", 
-   "fieldname": "language", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Language", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 1, 
-   "collapsible_depends_on": "eval:(!doc.enabled)", 
-   "columns": 0, 
-   "depends_on": "", 
-   "fieldname": "seller_profile_section", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Company and Seller Profile", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -299,6 +78,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -331,6 +111,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -362,6 +143,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -394,11 +176,44 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "company_logo", 
+   "fieldname": "currency", 
+   "fieldtype": "Currency", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Currency", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "logo", 
    "fieldtype": "Attach Image", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -425,11 +240,12 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "seller_description", 
+   "fieldname": "company_description", 
    "fieldtype": "Text Editor", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -456,6 +272,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -487,38 +304,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "users", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Users", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Hub Users", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -551,6 +337,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -582,6 +369,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -614,6 +402,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -647,6 +436,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -679,6 +469,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -711,6 +502,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -744,6 +536,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 1, 
@@ -777,6 +570,7 @@
   }, 
   {
    "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
@@ -817,8 +611,8 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-03-26 00:55:17.929140", 
- "modified_by": "test1@example.com", 
+ "modified": "2018-07-24 18:53:09.442523", 
+ "modified_by": "cave@aperture.com", 
  "module": "Hub Node", 
  "name": "Hub Settings", 
  "name_case": "", 
@@ -826,7 +620,6 @@
  "permissions": [
   {
    "amend": 0, 
-   "apply_user_permissions": 0, 
    "cancel": 0, 
    "create": 1, 
    "delete": 0, 
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
index 58b946e..551423c 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
@@ -10,9 +10,10 @@
 from erpnext.utilities.product import get_price, get_qty_in_stock
 from six import string_types
 
-hub_url = "https://hubmarket.org"
+# hub_url = "https://hubmarket.org"
 # hub_url = "http://159.89.175.122"
 # hub_url = "http://erpnext.hub:8001"
+hub_url = "http://hub.market:8000"
 
 class OAuth2Session():
 	def __init__(self, headers):
@@ -80,20 +81,20 @@
 	def register(self):
 		""" Create a User on hub.erpnext.org and return username/password """
 		data = {
-			'email': frappe.session.user
+			'profile': self.as_json()
 		}
 		post_url = hub_url + '/api/method/hub.hub.api.register'
 
-		response = requests.post(post_url, data=data)
+		response = requests.post(post_url, data=data, headers = {'accept': 'application/json'})
+		
 		response.raise_for_status()
-		message = response.json().get('message')
+		
+		if response.ok:
+			message = response.json().get('message')
+		else:
+			frappe.throw(json.loads(response.text))
 
-		if message and message.get('password'):
-			self.user = frappe.session.user
-			self.create_hub_connector(message)
-			self.company = frappe.defaults.get_user_default('company')
-			self.enabled = 1
-			self.save()
+		return message.get('password') if message else None
 
 	def unregister(self):
 		""" Disable the User on hub.erpnext.org"""
@@ -143,3 +144,16 @@
 def sync():
 	hub_settings = frappe.get_doc('Hub Settings')
 	hub_settings.sync()
+
+@frappe.whitelist()
+def register_seller(**kwargs):
+	settings = frappe.get_doc('Hub Settings')
+	settings.update(kwargs)
+	password = settings.register()
+
+	print(password)
+
+	# if password:
+	# 	self.create_hub_connector(message)
+	# 	self.registered = 1
+	# 	self.save()
diff --git a/erpnext/public/js/hub/hub_listing.js b/erpnext/public/js/hub/hub_listing.js
index f61272d..218960b 100644
--- a/erpnext/public/js/hub/hub_listing.js
+++ b/erpnext/public/js/hub/hub_listing.js
@@ -5,11 +5,16 @@
 		this.$parent = $(parent);
 		this.page = parent.page;
 
-		this.setup_header();
-		this.make_sidebar();
-		this.make_body();
-		this.setup_events();
-		this.refresh();
+		frappe.db.get_doc('Hub Settings')
+			.then(doc => {
+				this.hub_settings = doc;
+				
+				this.setup_header();
+				this.make_sidebar();
+				this.make_body();
+				this.setup_events();
+				this.refresh();
+			});
 	}
 
 	setup_header() {
@@ -35,7 +40,7 @@
 				<li class="hub-sidebar-item" data-route="marketplace/favourites">
 					${__('Favorites')}
 				</li>
-				<li class="hub-sidebar-item text-muted">
+				<li class="hub-sidebar-item text-muted" data-route="marketplace/register">
 					${__('Become a seller')}
 				</li>
 			</ul>
@@ -110,6 +115,11 @@
 			this.subpages.item = new erpnext.hub.Item(this.$body);
 		}
 
+		if (route[1] === 'register' && !this.subpages.register) {
+			this.subpages.register = new erpnext.hub.Register(this.$body);
+		}
+
+
 		if (!Object.keys(this.subpages).includes(route[1])) {
 			frappe.show_not_found();
 			return;
@@ -189,7 +199,7 @@
 
 	render(items) {
 		const html = get_item_card_container_html(items, __('Recently Published'));
-		this.$wrapper.html(html)
+		this.$wrapper.append(html)
 	}
 }
 
@@ -412,7 +422,6 @@
 			<span class="pull-left avatar avatar-medium hidden-xs" style="margin-top: 1px">
 				${image_html}
 			</span>
-
 			<div class="pull-left media-body">
 				<div class="media-content-wrapper">
 					<div class="action-btns">${edit_html}</div>
@@ -449,6 +458,176 @@
 		</div>`;
 	}
 }
+erpnext.hub.Register = class Register extends SubPage {
+	make_wrapper() {
+		super.make_wrapper();
+		this.$register_container = $(`<div class="row register-container">`)
+			.appendTo(this.$wrapper);
+		this.$form_container = $('<div class="col-md-8 col-md-offset-1 form-container">')
+			.appendTo(this.$wrapper);
+		
+		// const title = __('Become a Seller');
+		// this.$register_container.append($(`<h5>${title}</h5>`));
+	}
+
+	refresh() {
+		// company, company_email, logo, description
+		this.render();
+	}
+
+	// make_input() {
+	// 	//
+	// }
+		
+	render() {
+		this.make_field_group();
+	}
+
+	make_field_group() {
+		const fields = [
+			{
+				fieldtype: 'Link',
+				fieldname: 'company',
+				label: __('Company'),
+				options: 'Company',
+				onchange: () => {
+					const value = this.field_group.get_value('company');
+
+					if (value) {
+						frappe.db.get_doc('Company', value)
+							.then(company => {
+								this.field_group.set_values({
+									country: company.country,
+									company_email: company.email,
+									currency: company.default_currency
+								});
+							});
+					}
+				}
+			},
+			{
+				fieldname: 'company_email',
+				label: __('Email'),
+				fieldtype: 'Data'
+			},
+			{
+				fieldname: 'country',
+				label: __('Country'),
+				fieldtype: 'Read Only'
+			},
+			{
+				fieldname: 'currency',
+				label: __('Currency'),
+				fieldtype: 'Read Only'
+			},
+			{
+				fieldtype: 'Text',
+				label: __('About your Company'),
+				fieldname: 'company_description'
+			}
+		];
+
+		this.field_group = new frappe.ui.FieldGroup({
+			parent: this.$form_container,
+			fields
+		});
+
+		this.field_group.make();
+
+		this.$form_container.find('.form-column').append(`
+			<div class="text-right">
+				<button type="submit" class="btn btn-primary btn-register btn-sm">${__('Submit')}</button>
+			</div>
+		`);
+
+		this.$form_container.find('.form-message').removeClass('hidden small').addClass('h4').text(__('Become a Seller'))
+
+		this.$form_container.on('click', '.btn-register', () => {
+			const form_values = this.field_group.get_values();
+			frappe.call('erpnext.hub_node.doctype.hub_settings.hub_settings.register_seller', form_values)
+				.then(() => {
+					// Reload page and things ... but for now
+					frappe.msgprint('Registered successfully.');
+				});
+		});
+	}
+
+	make_form() {
+		const form_html = `<form class="register-form">
+		<div class="register-title margin-bottom margin-top">
+			<b>Become a Seller</b>
+		</div>
+
+		<div class="flex">
+			<div style="flex: 0 0 140px" class="margin-right">
+				<div>			
+					<div class="missing-image attach-missing-image">
+						<i class="octicon octicon-device-camera"></i>
+						</div><div class="img-container" style="display: none;">
+						<img class="img-responsive attach-image-display">
+						<div class="img-overlay">
+							<span class="overlay-text">Change</span>
+						</div>
+					</div>
+				</div>
+			</div>
+
+			<div style="flex: 1; font-size: 12px;">
+				<div class="form-group">
+					<input class="form-control" placeholder="Company" name="company" required="required">
+				</div>
+
+				<div class="form-group">
+					<input class="form-control" placeholder="Country" name="country" required="required">
+				</div>
+
+				<div class="form-group">
+					<input class="form-control" placeholder="Company Email" name="company_email" required="required">
+				</div>
+
+				<div class="form-group">
+					<textarea class="form-control" placeholder="About Your Company" name="company_description" required="required">
+					</textarea>
+				</div>
+
+				<div class="text-right">
+					<button type="submit" class="btn btn-primary btn-sm">${__('Submit')}</button>
+				</div>
+			</div>
+		</div>
+		</form>`;
+
+
+
+		this.$form_container.append(form_html);
+
+		this.$form_container.on('submit', (e) => {
+			e.preventDefault();
+
+			const formValues = this.$form_container.find('form').serializeArray();
+
+			console.log(formValues);
+		})
+	}
+}
+
+erpnext.hub.PublishItems = class PublishItems extends SubPage {
+	refresh() {
+		this.get_favourites()
+			.then(r => {
+				this.render(r.message);
+			});
+	}
+
+	render(items) {
+		const html = get_item_card_container_html(items, __(this.category));
+		this.$wrapper.html(html);
+	}
+
+	get_valid_items() {
+		return frappe.call('erpnext.hub_node.get_valid_items');
+	}
+}
 
 function get_item_card_container_html(items, title) {
 	const html = (items || []).map(item => get_item_card_html(item)).join('');
@@ -1335,4 +1514,4 @@
 		return item_html;
 	}
 
-};
\ No newline at end of file
+};
diff --git a/erpnext/public/less/hub.less b/erpnext/public/less/hub.less
index 48d52ca..35e1f8d 100644
--- a/erpnext/public/less/hub.less
+++ b/erpnext/public/less/hub.less
@@ -17,6 +17,10 @@
 		}
 	}
 
+	input, textarea {
+		font-size: @text-medium;
+	}
+
 	.hub-card {
 		border: 1px solid @border-color;
 		margin-bottom: 25px;
@@ -58,7 +62,6 @@
 		margin-bottom: 20px;
 
 		input {
-			font-size: @text-medium;
 			height: 32px;
 		}
 	}
@@ -101,6 +104,28 @@
 		border-radius: 4px;
 		border: 1px solid @border-color;
 	}
+
+	.register-title {
+		font-size: @text-regular;
+	}
+
+	.register-form {
+		border: 1px solid @border-color;
+		border-radius: 4px;
+		padding: 15px 25px;
+	}
+
+	.form-container {
+		.frappe-control {
+			max-width: 100% !important;
+		}
+	}
+
+	.form-message {
+		padding-top: 0;
+		padding-bottom: 0;
+		border-bottom: none;
+	}
 }
 
 body[data-route^="Hub/"] {