commit 69c1d78ee2cf349e6f8a1e09711df7ccfebb2608 Author: Anoop Date: Tue Nov 1 07:03:08 2022 +0530 Rebranded diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..098247b --- /dev/null +++ b/.gitignore @@ -0,0 +1,187 @@ +*.pyc +*.py~ +*.comp.js +*.DS_Store +locale +.wnf-lang-status +*.swp +*.egg-info +dist/ +build/ +frappe/docs/current +.vscode +node_modules +.kdev4/ +*.kdev4 +*debug.log + +# Not Recommended, but will remove once webpack ready +package-lock.json + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +.static_storage/ +.media/ +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..5028fb0 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,18 @@ +include MANIFEST.in +include requirements.txt +include *.json +include *.md +include *.py +include *.txt +recursive-include influxerp_com *.css +recursive-include influxerp_com *.csv +recursive-include influxerp_com *.html +recursive-include influxerp_com *.ico +recursive-include influxerp_com *.js +recursive-include influxerp_com *.json +recursive-include influxerp_com *.md +recursive-include influxerp_com *.png +recursive-include influxerp_com *.py +recursive-include influxerp_com *.svg +recursive-include influxerp_com *.txt +recursive-exclude influxerp_com *.pyc \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/__init__.py b/influxerp_com/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/api.py b/influxerp_com/api.py new file mode 100644 index 0000000..7637717 --- /dev/null +++ b/influxerp_com/api.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals +import frappe +import requests +from frappe import _ +from central.signup import signup as _signup, validate_subdomain +from frappe.integrations.utils import get_checkout_url +from frappe.utils.momentjs import get_all_timezones + +# TODO: +# 1. send email to particpant and us +# 2. who is coming page +# 3. final design + +@frappe.whitelist(allow_guest=True) +def make_payment(full_name, email, company, workshop=0, conf=0, currency='inr'): + if currency=='inr': + conf_rate = 600 + workshop_rate = 2000 + else: + conf_rate = 10 + workshop_rate = 50 + + amount = int(workshop or 0) * workshop_rate + int(conf or 0) * conf_rate + + if not amount: + frappe.msgprint('Please set no of tickets') + return + + participant = frappe.get_doc({ + 'doctype': 'Conference Participant', + 'full_name': full_name, + 'email_id': email, + 'company_name': company, + 'workshop': workshop, + 'conference': conf, + 'amount': amount + }).insert(ignore_permissions=True) + + #get controller for respecctive payment gateway + if currency == "inr": + payment_gateway = "Razorpay" + else: + payment_gateway = "PayPal" + + return get_checkout_url(**{ + "amount": amount, + "title": 'ERPNext Conference Tickets', + "description": '{0} passes for conference, {1} passes for workshop'.format(int(conf or 0), int(workshop or 0)), + "reference_doctype": participant.doctype, + "reference_docname": participant.name, + "payer_email": email, + "payer_name": full_name, + "order_id": participant.name, + "currency": currency, + "payment_gateway": payment_gateway + }) \ No newline at end of file diff --git a/influxerp_com/config/__init__.py b/influxerp_com/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/config/desktop.py b/influxerp_com/config/desktop.py new file mode 100644 index 0000000..35c00f7 --- /dev/null +++ b/influxerp_com/config/desktop.py @@ -0,0 +1,11 @@ +from frappe import _ + +def get_data(): + return { + "influxerp_com": { + "color": "black", + "icon": "fa fa-globe", + "type": "module", + "label": _("Conference") + } + } diff --git a/influxerp_com/docs_to_pdf.py b/influxerp_com/docs_to_pdf.py new file mode 100644 index 0000000..3314ac9 --- /dev/null +++ b/influxerp_com/docs_to_pdf.py @@ -0,0 +1,103 @@ +import frappe +import io +import re +import os +from pathlib import Path + +# bench --site sitename execute influxerp_com.docs_to_pdf.execute --args user/manual/en/index.md +# pandoc ./sites/erpnext-manual.md -o erpnext-manual.pdf + +source = '' +target = '' +base = '' +assets_path = '' +already_done = [] +index = 0 +all_content = '' + +def execute(source_file_path=None): + global all_content + setup_paths(source_file_path) + s = Path(source) + + make_file(s, s.name) + + all_content = all_content.replace('/docs/assets/img', assets_path + '/assets/img') + all_content = all_content.replace( + '{{docs_base_url}}', assets_path).replace( + '{{ docs_base_url }}', assets_path) + + all_content = all_content.replace('.html', '') + all_content = re.sub(r'\n---\n', '', all_content) + all_content = re.sub(r'!\[.*]\(/docs/assets/old_images/.*\n', '', all_content) + all_content = re.sub(r'', r'
![](\1)', all_content) + all_content = re.sub(r'(#+)(\w)', r'\1 \2', all_content) + all_content = re.sub('{next}', '', all_content) + + image_links = re.findall(r'!\[.*]\((.*)\)', all_content) + + for link in image_links: + if not Path(link).exists(): + all_content = all_content.replace(link, '') + + manual = Path(target) / 'erpnext-manual.md' + manual.touch() + manual.write_text(all_content) + print(manual.absolute()) + + +def setup_paths(source_file_path): + global source, target, base, assets_path + + if not source_file_path: + source_file_path = 'user/manual/en/index.md' + + app_path = frappe.get_app_path('influxerp_com') + source = os.path.join(app_path, 'www/docs', source_file_path) + target = '.' + base = os.path.join(app_path, 'www') + assets_path = os.path.join(app_path, 'www/docs') + + +def make_file(s, file_name): + global index + global already_done + global all_content + + if s.absolute() in already_done: + return + + # print(index) + content = get_content(s) + content += '\n\n\\newpage\n\n' + + all_content += content + + index += 1 + already_done.append(s.absolute()) + + children = get_children_files(content) + + for child in children: + if child.is_dir(): + index_file = child / 'index.md' + if index_file.exists(): + make_file(index_file, child.name) + if child.is_file(): + make_file(child, child.name) + + +def get_children_files(content): + matches = re.findall(r'\(/(docs/user/manual.*?)\)', content) + + paths = [] + for m in matches: + paths.append(Path(base) / m) + paths.append(Path(base) / (m + '.md')) + + return [p for p in paths if p.exists()] + + +def get_content(path_obj): + with path_obj.open() as f: + return f.read() diff --git a/influxerp_com/fixtures/contact_us_settings.json b/influxerp_com/fixtures/contact_us_settings.json new file mode 100644 index 0000000..2e33dda --- /dev/null +++ b/influxerp_com/fixtures/contact_us_settings.json @@ -0,0 +1,19 @@ +[ + { + "address_line1": null, + "address_line2": null, + "address_title": null, + "city": null, + "country": null, + "docstatus": 0, + "doctype": "Contact Us Settings", + "forward_to_email": "sales@erpnext.com", + "heading": null, + "introduction": null, + "modified": "2015-03-04 12:31:58.948285", + "name": "Contact Us Settings", + "pincode": null, + "query_options": null, + "state": null + } +] \ No newline at end of file diff --git a/influxerp_com/hooks.py b/influxerp_com/hooks.py new file mode 100644 index 0000000..9f9d87d --- /dev/null +++ b/influxerp_com/hooks.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +app_name = "influxerp_com" +app_title = "ERPNext.com" +app_publisher = "Frappe" +app_description = "ERPNext.com website" +app_icon = "fa fa-globe" +app_color = "black" +app_email = "info@erpnext.com" +app_url = "https://erpnext.com" +app_version = "0.0.1" +hide_in_installer = True + +website_context = { + "repo": "frappe/influxerp_com", +} + +website_redirects = [ + {"source": "/compare", "target": "https://erpnext.org/contribute"}, + {"source": "/benefits", "target": "/about"}, + {"source": "/download", "target": "https://erpnext.org/get-started"}, + {"source": "/faq", "target": "https://erpnext.org/faq"}, + {"source": "/open-source", "target": "https://erpnext.org/open-source"}, + {"source": "/12", "target": "/version-12"}, +] + +look_for_sidebar_json = True + +# Includes in +# ------------------ + +# include js, css files in header of desk.html +# app_include_css = "/assets/influxerp_com/css/influxerp_com.css" +# app_include_js = "/assets/influxerp_com/js/influxerp_com.js" + +# include js, css files in header of web template +web_include_css = "/assets/influxerp_com/css/custom.css" +web_include_js = [ + "/assets/influxerp_com/js/payment.js", + "/assets/influxerp_com/js/search_docs.js", +] + +# Home Pages +# ---------- + +# application home page (will override Website Settings) +# home_page = "index" + +# website user home page (by Role) +# role_home_page = { +# "Role": "home_page" +# } + +# Generators +# ---------- + +# automatically create page for each record of this doctype +# website_generators = ["Web Page"] + +# Installation +# ------------ + +# before_install = "influxerp_com.install.before_install" +# after_install = "influxerp_com.install.after_install" + +# Desk Notifications +# ------------------ +# See frappe.core.notifications.get_notification_config + +# notification_config = "influxerp_com.notifications.get_notification_config" + +# Permissions +# ----------- +# Permissions evaluated in scripted ways + +# permission_query_conditions = { +# "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", +# } +# +# has_permission = { +# "Event": "frappe.desk.doctype.event.event.has_permission", +# } + +# Document Events +# --------------- +# Hook on document methods and events + +# doc_events = { +# "*": { +# "on_update": "method", +# "on_cancel": "method", +# "on_trash": "method" +# } +# } + +# Scheduled Tasks +# --------------- + +# scheduler_events = { +# "all": [ +# "influxerp_com.tasks.all" +# ], +# "daily": [ +# "influxerp_com.tasks.daily" +# ], +# "hourly": [ +# "influxerp_com.tasks.hourly" +# ], +# "weekly": [ +# "influxerp_com.tasks.weekly" +# ] +# "monthly": [ +# "influxerp_com.tasks.monthly" +# ] +# } + +# Testing +# ------- + +# before_tests = "influxerp_com.install.before_tests" + +# Overriding Whitelisted Methods +# ------------------------------ +# +# override_whitelisted_methods = { +# "frappe.desk.doctype.event.event.get_events": "influxerp_com.event.get_events" +# } + +fixtures = ["Contact Us Settings"] + +jenv = { + "methods": [ + "get_geolocation_data:influxerp_com.utils.get_country" + ] +} diff --git a/influxerp_com/influxerp_com/__init__.py b/influxerp_com/influxerp_com/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/__init__.py b/influxerp_com/influxerp_com/doctype/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/conference/__init__.py b/influxerp_com/influxerp_com/doctype/conference/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/conference/conference.js b/influxerp_com/influxerp_com/doctype/conference/conference.js new file mode 100644 index 0000000..25aff4f --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference/conference.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Conference', { + refresh: function(frm) { + + } +}); diff --git a/influxerp_com/influxerp_com/doctype/conference/conference.json b/influxerp_com/influxerp_com/doctype/conference/conference.json new file mode 100644 index 0000000..8985b1f --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference/conference.json @@ -0,0 +1,90 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "field:conference_name", + "beta": 0, + "creation": "2017-01-05 16:48:58.637383", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "conference_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Conference Name", + "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": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2017-01-05 16:48:58.637383", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "Conference", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "is_custom": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/doctype/conference/conference.py b/influxerp_com/influxerp_com/doctype/conference/conference.py new file mode 100644 index 0000000..03e3b56 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference/conference.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class Conference(Document): + pass diff --git a/influxerp_com/influxerp_com/doctype/conference/test_conference.py b/influxerp_com/influxerp_com/doctype/conference/test_conference.py new file mode 100644 index 0000000..c460aeb --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference/test_conference.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +# test_records = frappe.get_test_records('Conference') + +class TestConference(unittest.TestCase): + pass diff --git a/influxerp_com/influxerp_com/doctype/conference_participant/__init__.py b/influxerp_com/influxerp_com/doctype/conference_participant/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.js b/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.js new file mode 100644 index 0000000..c93fd6e --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Conference Participant', { + refresh: function(frm) { + + } +}); diff --git a/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.json b/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.json new file mode 100644 index 0000000..73f8344 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.json @@ -0,0 +1,287 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2016-07-18 17:01:03.340436", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "conference", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Conference", + "length": 0, + "no_copy": 0, + "options": "Conference", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "full_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Full Name", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "email_id", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Email Id", + "length": 0, + "no_copy": 0, + "options": "Email", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "company_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Company Name", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "conference_tickets", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Conference Tickets", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "workshop_tickets", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Workshop Tickets", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "amount", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Amount", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "paid", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Paid", + "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, + "unique": 0 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2017-01-05 16:50:29.837455", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "Conference Participant", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "is_custom": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "full_name", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.py b/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.py new file mode 100644 index 0000000..a49d5ad --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_participant/conference_participant.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +from frappe.model.document import Document + +class ConferenceParticipant(Document): + def on_payment_authorized(self, status_changed_to=None): + self.paid = 1 + self.save(ignore_permissions=True) diff --git a/influxerp_com/influxerp_com/doctype/conference_participant/test_conference_participant.py b/influxerp_com/influxerp_com/doctype/conference_participant/test_conference_participant.py new file mode 100644 index 0000000..89e1ab1 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_participant/test_conference_participant.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +# test_records = frappe.get_test_records('Conference Participant') + +class TestConferenceParticipant(unittest.TestCase): + pass diff --git a/influxerp_com/influxerp_com/doctype/conference_talk/__init__.py b/influxerp_com/influxerp_com/doctype/conference_talk/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.js b/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.js new file mode 100644 index 0000000..c9614f0 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.js @@ -0,0 +1,8 @@ +// Copyright (c) 2016, Frappe and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Conference Talk', { + refresh: function(frm) { + + } +}); diff --git a/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.json b/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.json new file mode 100644 index 0000000..7b96ec7 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.json @@ -0,0 +1,159 @@ +{ + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2016-07-19 12:06:50.171428", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "subject", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Subject", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "talk_content", + "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Talk Content", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "speaker_bio", + "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Speaker Bio", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "approved", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Approved", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2016-07-19 12:44:58.089947", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "Conference Talk", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "subject", + "track_seen": 0 +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.py b/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.py new file mode 100644 index 0000000..44b0c21 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_talk/conference_talk.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class ConferenceTalk(Document): + pass diff --git a/influxerp_com/influxerp_com/doctype/conference_talk/test_conference_talk.py b/influxerp_com/influxerp_com/doctype/conference_talk/test_conference_talk.py new file mode 100644 index 0000000..f529095 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/conference_talk/test_conference_talk.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015, Frappe and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +# test_records = frappe.get_test_records('Conference Talk') + +class TestConferenceTalk(unittest.TestCase): + pass diff --git a/influxerp_com/influxerp_com/doctype/cve/__init__.py b/influxerp_com/influxerp_com/doctype/cve/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/cve/cve.js b/influxerp_com/influxerp_com/doctype/cve/cve.js new file mode 100644 index 0000000..1a6bf7a --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve/cve.js @@ -0,0 +1,8 @@ +// Copyright (c) 2019, Frappe and contributors +// For license information, please see license.txt + +frappe.ui.form.on('CVE List', { + refresh: function(frm) { + + } +}); diff --git a/influxerp_com/influxerp_com/doctype/cve/cve.json b/influxerp_com/influxerp_com/doctype/cve/cve.json new file mode 100644 index 0000000..715b0aa --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve/cve.json @@ -0,0 +1,354 @@ +{ + "allow_copy": 0, + "allow_events_in_timeline": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2019-02-07 01:20:57.839731", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "reference", + "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": "Reference", + "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": "description", + "fieldtype": "Text Editor", + "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": "Description", + "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": "reported_by", + "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": "Reported By", + "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": "reported_on", + "fieldtype": "Datetime", + "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": "Reported On", + "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": "reporter_url", + "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": "Reporter Information URL", + "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": "issue_url", + "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": "Issue URL", + "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": "commit_url", + "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": "Commit URL", + "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": "affected_applications", + "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": "Affected Applications", + "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, + "default": "Moderate", + "fieldname": "severity", + "fieldtype": "Select", + "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": "Severity", + "length": 0, + "no_copy": 0, + "options": "\nCritical\nImportant\nModerate", + "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 + } + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2019-02-07 02:02:25.030590", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "CVE", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "title_field": "reference", + "track_changes": 1, + "track_seen": 0, + "track_views": 0 +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/doctype/cve/cve.py b/influxerp_com/influxerp_com/doctype/cve/cve.py new file mode 100644 index 0000000..3a95cd3 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve/cve.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class CVE(Document): + pass diff --git a/influxerp_com/influxerp_com/doctype/cve/test_cve.py b/influxerp_com/influxerp_com/doctype/cve/test_cve.py new file mode 100644 index 0000000..f7ea0fb --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve/test_cve.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +class TestCVEList(unittest.TestCase): + pass diff --git a/influxerp_com/influxerp_com/doctype/cve_report_form/__init__.py b/influxerp_com/influxerp_com/doctype/cve_report_form/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.js b/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.js new file mode 100644 index 0000000..bc45cfe --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.js @@ -0,0 +1,8 @@ +// Copyright (c) 2019, Frappe and contributors +// For license information, please see license.txt + +frappe.ui.form.on('CVE Report Form', { + refresh: function(frm) { + + } +}); diff --git a/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.json b/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.json new file mode 100644 index 0000000..adecc8c --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.json @@ -0,0 +1,360 @@ +{ + "allow_copy": 0, + "allow_events_in_timeline": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "format:VUL-{#####}", + "beta": 0, + "creation": "2019-01-24 18:21:00.836475", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "full_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Name", + "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": 1, + "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": "email_address", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Email Address", + "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": 1, + "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": "vulnerability_type", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Vulnerability Type", + "length": 0, + "no_copy": 0, + "options": "\nCross-Site Scripting (XSS)\nCode Injection\nBuffer Overflow\nUnvalidated Input\nAccess-Control Problem\nRace Condition\nRemote Code Execution\nWeaknesses in Authentication, Authorization, or Cryptographic Practices\nOther", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "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, + "description": "Enter comma separated values for multiple applications", + "fieldname": "affected_application", + "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": "Affected Application", + "length": 0, + "no_copy": 0, + "options": "", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "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": "affected_version", + "fieldtype": "Select", + "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": "Affected Version", + "length": 0, + "no_copy": 0, + "options": "\nv10\nv11\nv12\nAll", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "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, + "default": "Moderate", + "fieldname": "severity", + "fieldtype": "Select", + "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": "Severity", + "length": 0, + "no_copy": 0, + "options": "Critical\nImportant\nModerate", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "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": "vulnerability_description", + "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Vulnerability Description", + "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": 1, + "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, + "description": "Describe the methods of exploitation in brief", + "fieldname": "attack_vectors", + "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": "Attack Vectors", + "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, + "description": "Check this field if you do not wish to be featured on the CVE References List", + "fieldname": "maintain_anonymity", + "fieldtype": "Check", + "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": "Maintain Anonymity", + "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 + } + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2019-03-01 09:48:39.583479", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "CVE Report Form", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0, + "track_views": 0 +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.py b/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.py new file mode 100644 index 0000000..07fd0ac --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve_report_form/cve_report_form.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +import json +from frappe.model.document import Document +from frappe.utils import get_request_session + +class CVEReportForm(Document): + + def after_insert(self): + session = get_request_session() + try: + login(session) + response = session.post('{host}/api/resource/Issue'.format(host=frappe.conf.api_host), data={ + "data": { + json.dumps({ + "subject": "{name} [{severity}] {app} - {vulnerability}".format( + name=self.name, + severity=self.severity, + app=self.affected_application, + vulnerability=self.vulnerability_type + ), + "status": "Open", + "support_team": "Security", + "issue_type": "Security Vulnerability", + "raised_by": self.email_address, + "description": self.vulnerability_description + })} + }) + response.raise_for_status() + logout(session) + except Exception: + traceback = frappe.get_traceback() + frappe.log_error(traceback) + + +def login(session): + r = session.post('{host}/'.format(host=frappe.conf.api_host), data={ + 'cmd': 'login', + 'usr': frappe.conf.api_username, + 'pwd': frappe.conf.api_password + }) + + try: + if not r.json().get('message') == "Logged In": + raise Exception + except json.decoder.JSONDecodeError: + raise Exception + + +def logout(session): + session.get('{host}/?cmd=logout'.format(host=frappe.conf.api_host)) diff --git a/influxerp_com/influxerp_com/doctype/cve_report_form/test_cve_report_form.py b/influxerp_com/influxerp_com/doctype/cve_report_form/test_cve_report_form.py new file mode 100644 index 0000000..06f2454 --- /dev/null +++ b/influxerp_com/influxerp_com/doctype/cve_report_form/test_cve_report_form.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019, Frappe and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest + +class TestCVEReportForm(unittest.TestCase): + pass diff --git a/influxerp_com/influxerp_com/web_form/__init__.py b/influxerp_com/influxerp_com/web_form/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/web_form/cve_report/__init__.py b/influxerp_com/influxerp_com/web_form/cve_report/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/web_form/cve_report/cve_report.js b/influxerp_com/influxerp_com/web_form/cve_report/cve_report.js new file mode 100644 index 0000000..699703c --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/cve_report/cve_report.js @@ -0,0 +1,3 @@ +frappe.ready(function() { + // bind events here +}) \ No newline at end of file diff --git a/influxerp_com/influxerp_com/web_form/cve_report/cve_report.json b/influxerp_com/influxerp_com/web_form/cve_report/cve_report.json new file mode 100644 index 0000000..080d80a --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/cve_report/cve_report.json @@ -0,0 +1,261 @@ +{ + "accept_payment": 0, + "allow_comments": 0, + "allow_delete": 0, + "allow_edit": 0, + "allow_incomplete": 0, + "allow_multiple": 0, + "allow_print": 0, + "amount": 0.0, + "amount_based_on_field": 0, + "apply_document_permissions": 0, + "creation": "2019-01-24 19:05:07.422880", + "doc_type": "CVE Report Form", + "docstatus": 0, + "doctype": "Web Form", + "idx": 0, + "introduction_text": "
Here you can report any reproducible vulnerability that affects the security of our apps.

Reporting Guidelines
", + "is_standard": 1, + "login_required": 0, + "max_attachment_size": 0, + "modified": "2021-06-08 18:24:07.343094", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "cve-report", + "owner": "Administrator", + "payment_button_label": "Buy Now", + "published": 1, + "route": "security/report", + "route_to_success_link": 0, + "show_attachments": 0, + "show_in_grid": 0, + "show_sidebar": 0, + "sidebar_items": [], + "success_message": "Thank you for reporting the vulnerability. Our team will reach out to you if required in the next two weeks.", + "success_url": "/security", + "title": "Report a Vulnerability", + "web_form_fields": [ + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Section Break", + "hidden": 0, + "label": "Personal Info", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "full_name", + "fieldtype": "Data", + "hidden": 0, + "label": "Name", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Column Break", + "hidden": 0, + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "email_address", + "fieldtype": "Data", + "hidden": 0, + "label": "Email Address", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Section Break", + "hidden": 0, + "label": "Report Details", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "vulnerability_type", + "fieldtype": "Select", + "hidden": 0, + "label": "Vulnerability Type", + "max_length": 0, + "max_value": 0, + "options": "\nCross-Site Scripting (XSS)\nSQL Injection (SQLi)\nCode Injection\nBuffer Overflow\nUnvalidated Input\nBroken Access-Control Problem\nRace Condition\nRemote Code Execution (RCE)\nWeaknesses in Authentication & Authorization\nWeaknesses in Cryptographic Practices\nPrivilege Escalation\nCRLF Injection\nCSRF (Cross Site Request Forgery)\nIDOR (Insecure Direct Object References)\nOpen Redirect\nInformation Disclosure\nSubdomain Takeover\nOther", + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "default": "Frappe", + "description": "", + "fieldname": "affected_application", + "fieldtype": "Select", + "hidden": 0, + "label": "Affected Application(s)", + "max_length": 0, + "max_value": 0, + "options": "Frappe\nERPNext\nFrappe Cloud ", + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Column Break", + "hidden": 0, + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "affected_version", + "fieldtype": "Select", + "hidden": 0, + "label": "Affected Version", + "max_length": 0, + "max_value": 0, + "options": "\nv10\nv11\nv12\nv13\nAll", + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "default": "Moderate", + "fieldname": "severity", + "fieldtype": "Select", + "hidden": 0, + "label": "Severity", + "max_length": 0, + "max_value": 0, + "options": "Critical\nHigh\nModerate\nLow", + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldname": "", + "fieldtype": "Section Break", + "hidden": 0, + "label": "Description", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "description": "Add the payload", + "fieldname": "attack_vectors", + "fieldtype": "Data", + "hidden": 0, + "label": "Attack Vector(s)", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "description": "Describe the Vulnerability in brief and risk of Impact.", + "fieldname": "vulnerability_description", + "fieldtype": "Small Text", + "hidden": 0, + "label": "Vulnerability Description", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldtype": "Text Editor", + "hidden": 0, + "label": "Steps to Reproduce", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 1, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "fieldtype": "Small Text", + "hidden": 0, + "label": "Recommended Mitigation", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "description": "Please add link or references for similar CVE reports.", + "fieldtype": "Data", + "hidden": 0, + "label": "Reference of Similar Report", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "description": "Please provide a POC video via youtube or drive link, if possible.", + "fieldtype": "Data", + "hidden": 0, + "label": "POC Link", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + }, + { + "allow_read_on_all_link_options": 0, + "description": "Check this field if you do not wish to be featured on the CVE References List", + "fieldname": "maintain_anonymity", + "fieldtype": "Check", + "hidden": 0, + "label": "Maintain Anonymity", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0, + "show_in_filter": 0 + } + ] +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/web_form/cve_report/cve_report.py b/influxerp_com/influxerp_com/web_form/cve_report/cve_report.py new file mode 100644 index 0000000..2334f8b --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/cve_report/cve_report.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +import frappe + +def get_context(context): + # do your magic here + pass diff --git a/influxerp_com/influxerp_com/web_form/proposal/__init__.py b/influxerp_com/influxerp_com/web_form/proposal/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/web_form/proposal/proposal.js b/influxerp_com/influxerp_com/web_form/proposal/proposal.js new file mode 100644 index 0000000..699703c --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/proposal/proposal.js @@ -0,0 +1,3 @@ +frappe.ready(function() { + // bind events here +}) \ No newline at end of file diff --git a/influxerp_com/influxerp_com/web_form/proposal/proposal.json b/influxerp_com/influxerp_com/web_form/proposal/proposal.json new file mode 100644 index 0000000..749accb --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/proposal/proposal.json @@ -0,0 +1,50 @@ +{ + "allow_comments": 1, + "allow_delete": 0, + "allow_edit": 1, + "allow_multiple": 0, + "creation": "2016-07-19 12:09:34.601334", + "doc_type": "Conference Talk", + "docstatus": 0, + "doctype": "Web Form", + "idx": 0, + "introduction_text": "Give as much information (links etc) as you can about your talk so that we can review it. Let the talks be more about your project than your company. Please sign up to propose a talk.", + "is_standard": 1, + "login_required": 1, + "modified": "2016-08-05 15:19:11.157646", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "proposal", + "owner": "Administrator", + "published": 1, + "route": "proposals", + "success_message": "Thanks for your proposal. We will review and get back as soon as possible.", + "success_url": "/conf/2016", + "title": "Propose a Talk", + "web_form_fields": [ + { + "fieldname": "subject", + "fieldtype": "Data", + "hidden": 0, + "label": "Subject", + "read_only": 0, + "reqd": 1 + }, + { + "fieldname": "talk_content", + "fieldtype": "Text", + "hidden": 0, + "label": "Talk Content", + "read_only": 0, + "reqd": 1 + }, + { + "fieldname": "speaker_bio", + "fieldtype": "Text", + "hidden": 0, + "label": "Speaker Bio", + "read_only": 0, + "reqd": 1 + } + ] +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/web_form/proposal/proposal.py b/influxerp_com/influxerp_com/web_form/proposal/proposal.py new file mode 100644 index 0000000..2334f8b --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/proposal/proposal.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +import frappe + +def get_context(context): + # do your magic here + pass diff --git a/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/__init__.py b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.js b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.js new file mode 100644 index 0000000..699703c --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.js @@ -0,0 +1,3 @@ +frappe.ready(function() { + // bind events here +}) \ No newline at end of file diff --git a/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.json b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.json new file mode 100644 index 0000000..e801dc8 --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.json @@ -0,0 +1,106 @@ +{ + "accept_payment": 0, + "allow_comments": 0, + "allow_delete": 0, + "allow_edit": 0, + "allow_incomplete": 0, + "allow_multiple": 0, + "allow_print": 0, + "amount": 0.0, + "amount_based_on_field": 0, + "creation": "2017-01-05 16:51:32.969313", + "doc_type": "Conference Participant", + "docstatus": 0, + "doctype": "Web Form", + "idx": 0, + "is_standard": 1, + "login_required": 0, + "max_attachment_size": 0, + "modified": "2017-01-05 17:05:29.705795", + "modified_by": "Administrator", + "module": "influxerp_com", + "name": "register-for-conference-2017-europe", + "owner": "Administrator", + "payment_button_label": "Buy Now", + "published": 1, + "route": "conf/2017-eu/register-form", + "show_sidebar": 0, + "sidebar_items": [], + "success_url": "/conf/2017-eu", + "title": "Register for Conference 2017 Europe", + "web_form_fields": [ + { + "default": "2017 Europe", + "fieldname": "conference", + "fieldtype": "Link", + "hidden": 1, + "label": "Conference", + "max_length": 0, + "max_value": 0, + "options": "Conference", + "read_only": 0, + "reqd": 0 + }, + { + "fieldname": "full_name", + "fieldtype": "Data", + "hidden": 0, + "label": "Full Name", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0 + }, + { + "fieldname": "email_id", + "fieldtype": "Data", + "hidden": 0, + "label": "Email Id", + "max_length": 0, + "max_value": 0, + "options": "Email", + "read_only": 0, + "reqd": 0 + }, + { + "fieldname": "company_name", + "fieldtype": "Data", + "hidden": 0, + "label": "Company Name", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0 + }, + { + "fieldname": "conference_tickets", + "fieldtype": "Int", + "hidden": 0, + "label": "Conference Tickets", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0 + }, + { + "fieldname": "workshop_tickets", + "fieldtype": "Int", + "hidden": 0, + "label": "Workshop Tickets", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0 + }, + { + "fieldname": "amount", + "fieldtype": "Data", + "hidden": 0, + "label": "Amount", + "max_length": 0, + "max_value": 0, + "read_only": 1, + "reqd": 0 + } + ] +} \ No newline at end of file diff --git a/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.py b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.py new file mode 100644 index 0000000..2334f8b --- /dev/null +++ b/influxerp_com/influxerp_com/web_form/register_for_conference_2017_europe/register_for_conference_2017_europe.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +import frappe + +def get_context(context): + # do your magic here + pass diff --git a/influxerp_com/modules.txt b/influxerp_com/modules.txt new file mode 100644 index 0000000..00fa9f0 --- /dev/null +++ b/influxerp_com/modules.txt @@ -0,0 +1 @@ +influxerp_com diff --git a/influxerp_com/patches.txt b/influxerp_com/patches.txt new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/public/build.json b/influxerp_com/public/build.json new file mode 100644 index 0000000..a104d19 --- /dev/null +++ b/influxerp_com/public/build.json @@ -0,0 +1,5 @@ +{ + "js/pricing.js": [ + "public/js/signup/pricing.js" + ] +} \ No newline at end of file diff --git a/influxerp_com/public/css/custom.css b/influxerp_com/public/css/custom.css new file mode 100644 index 0000000..6c157ff --- /dev/null +++ b/influxerp_com/public/css/custom.css @@ -0,0 +1,187 @@ +:root { + --gradient-light: rgba(255,255,255,0.1); + --bezel: rgba(45, 55, 72, 0.15); + --gradient-darker: rgba(45, 55, 72, 0.1); + --gradient-dark: rgba(45, 55, 72, 0.04); + --shadow: rgba(45, 55, 72, 0.5); + --laptop-body: #FBFBFB; +} + +/* --------------------- Text Rotate --------------------- */ + +.fade-in-rotate { + animation-name: fade-it; + animation-duration: 1s; + animation-fill-mode: both; + -webkit-animation-name: fade-it; + -webkit-animation-duration: 1s; + -webkit-animation-fill-mode: both +} + +.rotate.rotate-block { display: inline-block } + +.rotate.rotate-hide { + display: none; + opacity: 0 +} + +.rotate { + display: inline-block; + visibility: visible; + color: #F6AD55; +} + +@media (max-width: 768px) { + .rotate { + display: block !important; + } +} + +/* --------------------- Macbook --------------------- */ + +.macbook { + padding: 0%; + margin: 5em -80px; + background: white; + /*max-width: 800px;*/ +} + +@media (max-width: 768px) { + .macbook { + margin: 5em 0px; + } +} + +.screen { + background-color: var(--bezel); + box-shadow: 0 20px 100px -50px var(--shadow); + border-radius: 3% 3% 0.5% 0.5% / 5%; + margin: 0 auto; + /* for aspect ratio */ + position: relative; + width: 85%; +} + +.screen:before { + border: 2px solid white; + border-bottom: none; + border-radius: 3% 3% 0.5% 0.5% / 5%; + content: ""; + display: block; + /* for aspect ratio ~67:100 */ + padding-top: 67%; +} + +.viewport { + position: absolute; + bottom: 0; + left: 0; + right: 0; + top: 0; + margin: 3.3% 2.2%; + background: white; + background-size: cover; +} + +.base { + /* for aspect ratio */ + position: relative; + width: 100%; +} + +.base:before { + content: ""; + display: block; + padding-top: 2%; + /* stylin */ + background: var(--laptop-body); + background-image: -webkit-linear-gradient(left, var(--gradient-darker) 0%, var(--gradient-light) 2%, var(--gradient-light) 98%, var(--gradient-darker) 100%); + background-image: -o-linear-gradient(left, var(--gradient-darker) 0%, var(--gradient-light) 2%, var(--gradient-light) 98%, var(--gradient-darker) 100%); + background-image: linear-gradient(to right, var(--gradient-darker) 0%, var(--gradient-light) 2%, var(--gradient-light) 98%, var(--gradient-darker) 100%); + border-radius: 0 0 10% 10%/ 0 0 50% 50%; + box-shadow: 0 3px 3px 0 rgba(0,0,0,0.1); +} + +.base::after { + background: white; + background-image: linear-gradient(180deg, var(--gradient-light) 0%, rgba(0,0,0,0.05) 100%); + content: ""; + height: 60%; + position: absolute; + top: 0; + width: 100%; +} + +.notch { + /*background: var(--laptop-body);*/ + /*background-image: linear-gradient(270deg, var(--gradient-darker) 0%, var(--gradient-light) 30%, var(--gradient-light) 75%, var(--gradient-darker) 100%);*/ + background: #F9F7F7; + background-image: -webkit-linear-gradient(right, rgba(0,0,0,0.04) 0%, rgba(233,233,233,0.04) 8%, rgba(255,255,255,0.04) 92%, rgba(0,0,0,0.04) 100%); + background-image: -o-linear-gradient(right, rgba(0,0,0,0.04) 0%, rgba(233,233,233,0.04) 8%, rgba(255,255,255,0.04) 92%, rgba(0,0,0,0.04) 100%); + background-image: linear-gradient(to left, rgba(0,0,0,0.04) 0%, rgba(233,233,233,0.04) 8%, rgba(255,255,255,0.04) 92%, rgba(0,0,0,0.04) 100%); + border-radius: 0 0 7% 7% / 0 0 95% 95%; + margin-left: auto; + margin-right: auto; + margin-top: -2.0%; + z-index: 2; + /* for aspect ratio */ + position: relative; + width: 12%; +} + +.notch:before { + content: ""; + display: block; + /* for aspect ratio ~1:10 */ + padding-top: 10%; +} + +.macbook .viewport { + background-position: 0 0; + background-size: 100% auto; + overflow: hidden; + display: none; + -webkit-animation-name: fade-it; + animation-name: fade-it; + -webkit-animation-duration: 1.8s; + animation-duration: 1.8s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} + +.macbook .viewport.showing { + display: block; +} + +.macbook .viewport:after { + background: transparent; + bottom: 0; + content: ""; + left: 0; + position: absolute; + right: 0; + top: 0; +} +/* Macbook mocks */ + + +/* --------------------- Animations --------------------- */ + + +@-moz-keyframes +fade-it { + 0% { opacity: 0 } + 100% { opacity: 1 } +} + +@-webkit-keyframes +fade-it { + 0% { opacity: 0 } + 100% { opacity: 1 } +} + +@keyframes +fade-it { + 0% { opacity: 0 } + 100% { opacity: 1 } +} \ No newline at end of file diff --git a/influxerp_com/public/css/rotate.css b/influxerp_com/public/css/rotate.css new file mode 100644 index 0000000..21d13cf --- /dev/null +++ b/influxerp_com/public/css/rotate.css @@ -0,0 +1,751 @@ +.ah-headline b { + font-weight: inherit !important; + color: #F6AD55; +} + +.ah-headline.type .ah-words-wrapper.selected::after, +.ah-headline.type b { + visibility: hidden; +} +.ah-headline.clip .ah-words-wrapper, +.ah-headline.loading-bar .ah-words-wrapper, +.ah-headline.slide .ah-words-wrapper, +.ah-headline.type .ah-words-wrapper { + overflow: hidden; + vertical-align: top; +} +.ah-words-wrapper { + display: inline-block; + position: relative; + text-align: left; +} +.ah-words-wrapper b { + display: inline-block; + position: absolute; + white-space: nowrap; + left: 0; + top: 0; +} +.ah-words-wrapper b.is-visible { + position: relative; +} +.no-js .ah-words-wrapper b { + opacity: 0; +} +.no-js .ah-words-wrapper b.is-visible { + opacity: 1; +} +.ah-headline.rotate-1 .ah-words-wrapper { + -webkit-perspective: 300px; + perspective: 300px; +} +.ah-headline.rotate-1 b { + opacity: 0; + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); +} +.ah-headline.rotate-1 b.is-visible { + opacity: 1; + -webkit-transform: rotateX(0); + transform: rotateX(0); + -webkit-animation: ah-rotate-1-in 1.2s; + animation: ah-rotate-1-in 1.2s; +} +.ah-headline.rotate-1 b.is-hidden { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); + -webkit-animation: ah-rotate-1-out 1.2s; + animation: ah-rotate-1-out 1.2s; +} +@-webkit-keyframes ah-rotate-1-in { + 0% { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); + opacity: 0; + } + 35% { + -webkit-transform: rotateX(120deg); + transform: rotateX(120deg); + opacity: 0; + } + 65% { + opacity: 0; + } + 100% { + -webkit-transform: rotateX(360deg); + transform: rotateX(360deg); + opacity: 1; + } +} +@keyframes ah-rotate-1-in { + 0% { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); + opacity: 0; + } + 35% { + -webkit-transform: rotateX(120deg); + transform: rotateX(120deg); + opacity: 0; + } + 65% { + opacity: 0; + } + 100% { + -webkit-transform: rotateX(360deg); + transform: rotateX(360deg); + opacity: 1; + } +} +@-webkit-keyframes ah-rotate-1-out { + 0% { + -webkit-transform: rotateX(0); + transform: rotateX(0); + opacity: 1; + } + 35% { + -webkit-transform: rotateX(-40deg); + transform: rotateX(-40deg); + opacity: 1; + } + 65% { + opacity: 0; + } + 100% { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); + opacity: 0; + } +} +@keyframes ah-rotate-1-out { + 0% { + -webkit-transform: rotateX(0); + transform: rotateX(0); + opacity: 1; + } + 35% { + -webkit-transform: rotateX(-40deg); + transform: rotateX(-40deg); + opacity: 1; + } + 65% { + opacity: 0; + } + 100% { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); + opacity: 0; + } +} +.ah-headline.type .ah-words-wrapper::after { + content: ''; + position: absolute; + right: 0; + top: 50%; + bottom: auto; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + height: 90%; + width: 1px; + background-color: #363636; +} +.ah-headline.type .ah-words-wrapper.waiting::after { + -webkit-animation: ah-pulse 1s infinite; + animation: ah-pulse 1s infinite; +} +.ah-headline.type .ah-words-wrapper.selected { + background-color: #f0f0f0; +} +.ah-headline.type .ah-words-wrapper.selected b { + color: #363636; +} +.ah-headline.type b.is-visible { + visibility: visible; +} +.ah-headline.type i { + position: absolute; + visibility: hidden; +} +.ah-headline.type i.in { + position: relative; + visibility: visible; +} +@-webkit-keyframes ah-pulse { + 0% { + -webkit-transform: translateY(-50%) scale(1); + transform: translateY(-50%) scale(1); + opacity: 1; + } + 40% { + -webkit-transform: translateY(-50%) scale(0.9); + transform: translateY(-50%) scale(0.9); + opacity: 0; + } + 100% { + -webkit-transform: translateY(-50%) scale(0); + transform: translateY(-50%) scale(0); + opacity: 0; + } +} +@keyframes ah-pulse { + 0% { + -webkit-transform: translateY(-50%) scale(1); + transform: translateY(-50%) scale(1); + opacity: 1; + } + 40% { + -webkit-transform: translateY(-50%) scale(0.9); + transform: translateY(-50%) scale(0.9); + opacity: 0; + } + 100% { + -webkit-transform: translateY(-50%) scale(0); + transform: translateY(-50%) scale(0); + opacity: 0; + } +} +.ah-headline.rotate-2 .ah-words-wrapper { + -webkit-perspective: 300px; + perspective: 300px; +} +.ah-headline.rotate-2 em, +.ah-headline.rotate-2 i { + display: inline-block; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.ah-headline.rotate-2 b { + opacity: 0; +} +.ah-headline.rotate-2 i { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transform: translateZ(-20px) rotateX(90deg); + transform: translateZ(-20px) rotateX(90deg); + opacity: 0; +} +.is-visible .ah-headline.rotate-2 i { + opacity: 1; +} +.ah-headline.rotate-2 i.in { + -webkit-animation: ah-rotate-2-in 0.4s forwards; + animation: ah-rotate-2-in 0.4s forwards; +} +.ah-headline.rotate-2 i.out { + -webkit-animation: ah-rotate-2-out 0.4s forwards; + animation: ah-rotate-2-out 0.4s forwards; +} +.ah-headline.rotate-2 em { + -webkit-transform: translateZ(20px); + transform: translateZ(20px); +} +.no-csstransitions .ah-headline.rotate-2 i { + -webkit-transform: rotateX(0); + transform: rotateX(0); + opacity: 0; +} +.no-csstransitions .ah-headline.rotate-2 i em { + -webkit-transform: scale(1); + transform: scale(1); +} +.no-csstransitions .ah-headline.rotate-2 .is-visible i { + opacity: 1; +} +@-webkit-keyframes ah-rotate-2-in { + 0% { + opacity: 0; + -webkit-transform: translateZ(-20px) rotateX(90deg); + transform: translateZ(-20px) rotateX(90deg); + } + 60% { + opacity: 1; + -webkit-transform: translateZ(-20px) rotateX(-10deg); + transform: translateZ(-20px) rotateX(-10deg); + } + 100% { + opacity: 1; + -webkit-transform: translateZ(-20px) rotateX(0); + transform: translateZ(-20px) rotateX(0); + } +} +@keyframes ah-rotate-2-in { + 0% { + opacity: 0; + -webkit-transform: translateZ(-20px) rotateX(90deg); + transform: translateZ(-20px) rotateX(90deg); + } + 60% { + opacity: 1; + -webkit-transform: translateZ(-20px) rotateX(-10deg); + transform: translateZ(-20px) rotateX(-10deg); + } + 100% { + opacity: 1; + -webkit-transform: translateZ(-20px) rotateX(0); + transform: translateZ(-20px) rotateX(0); + } +} +@-webkit-keyframes ah-rotate-2-out { + 0% { + opacity: 1; + -webkit-transform: translateZ(-20px) rotateX(0); + transform: translateZ(-20px) rotateX(0); + } + 60% { + opacity: 0; + -webkit-transform: translateZ(-20px) rotateX(-100deg); + transform: translateZ(-20px) rotateX(-100deg); + } + 100% { + opacity: 0; + -webkit-transform: translateZ(-20px) rotateX(-90deg); + transform: translateZ(-20px) rotateX(-90deg); + } +} +@keyframes ah-rotate-2-out { + 0% { + opacity: 1; + -webkit-transform: translateZ(-20px) rotateX(0); + transform: translateZ(-20px) rotateX(0); + } + 60% { + opacity: 0; + -webkit-transform: translateZ(-20px) rotateX(-100deg); + transform: translateZ(-20px) rotateX(-100deg); + } + 100% { + opacity: 0; + -webkit-transform: translateZ(-20px) rotateX(-90deg); + transform: translateZ(-20px) rotateX(-90deg); + } +} +.ah-headline.loading-bar .ah-words-wrapper::after { + content: ''; + position: absolute; + left: 0; + bottom: 0; + height: 3px; + width: 0; + background: #356efd; + z-index: 2; + -webkit-transition: width 0.3s -0.1s; + transition: width 0.3s -0.1s; +} +.ah-headline.loading-bar .ah-words-wrapper.is-loading::after { + width: 100%; + -webkit-transition: width 3s; + transition: width 3s; +} +.ah-headline.loading-bar b { + top: 0.2em; + opacity: 0; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; +} +.ah-headline.loading-bar b.is-visible { + opacity: 1; + top: 0; +} +.ah-headline.slide b { + opacity: 0; + top: 0.2em; +} +.ah-headline.slide b.is-visible { + top: 0; + opacity: 1; + -webkit-animation: slide-in 0.6s; + animation: slide-in 0.6s; +} +.ah-headline.slide b.is-hidden { + -webkit-animation: slide-out 0.6s; + animation: slide-out 0.6s; +} +@-webkit-keyframes slide-in { + 0% { + opacity: 0; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } + 60% { + opacity: 1; + -webkit-transform: translateY(20%); + transform: translateY(20%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes slide-in { + 0% { + opacity: 0; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } + 60% { + opacity: 1; + -webkit-transform: translateY(20%); + transform: translateY(20%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} +@-webkit-keyframes slide-out { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } + 60% { + opacity: 0; + -webkit-transform: translateY(120%); + transform: translateY(120%); + } + 100% { + opacity: 0; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} +@keyframes slide-out { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } + 60% { + opacity: 0; + -webkit-transform: translateY(120%); + transform: translateY(120%); + } + 100% { + opacity: 0; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} +.ah-headline.clip .ah-words-wrapper::after { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 2px; + height: 100%; + background-color: #363636; +} +.ah-headline.clip b { + opacity: 0; +} +.ah-headline.clip b.is-visible { + opacity: 1; +} +.ah-headline.zoom .ah-words-wrapper { + -webkit-perspective: 300px; + perspective: 300px; +} +.ah-headline.zoom b { + opacity: 0; +} +.ah-headline.zoom b.is-visible { + opacity: 1; + -webkit-animation: zoom-in 0.8s; + animation: zoom-in 0.8s; +} +.ah-headline.zoom b.is-hidden { + -webkit-animation: zoom-out 0.8s; + animation: zoom-out 0.8s; +} +@-webkit-keyframes zoom-in { + 0% { + opacity: 0; + -webkit-transform: translateZ(100px); + transform: translateZ(100px); + } + 100% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes zoom-in { + 0% { + opacity: 0; + -webkit-transform: translateZ(100px); + transform: translateZ(100px); + } + 100% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@-webkit-keyframes zoom-out { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 100% { + opacity: 0; + -webkit-transform: translateZ(-100px); + transform: translateZ(-100px); + } +} +@keyframes zoom-out { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 100% { + opacity: 0; + -webkit-transform: translateZ(-100px); + transform: translateZ(-100px); + } +} +.ah-headline.rotate-3 .ah-words-wrapper { + -webkit-perspective: 300px; + perspective: 300px; +} +.ah-headline.rotate-3 b { + opacity: 0; +} +.ah-headline.rotate-3 i { + display: inline-block; + -webkit-transform: rotateY(180deg); + transform: rotateY(180deg); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.is-visible .ah-headline.rotate-3 i { + -webkit-transform: rotateY(0); + transform: rotateY(0); +} +.ah-headline.rotate-3 i.in { + -webkit-animation: ah-rotate-3-in 0.6s forwards; + animation: ah-rotate-3-in 0.6s forwards; +} +.ah-headline.rotate-3 i.out { + -webkit-animation: ah-rotate-3-out 0.6s forwards; + animation: ah-rotate-3-out 0.6s forwards; +} +.no-csstransitions .ah-headline.rotate-3 i { + -webkit-transform: rotateY(0); + transform: rotateY(0); + opacity: 0; +} +.no-csstransitions .ah-headline.rotate-3 .is-visible i { + opacity: 1; +} +@-webkit-keyframes ah-rotate-3-in { + 0% { + -webkit-transform: rotateY(180deg); + transform: rotateY(180deg); + } + 100% { + -webkit-transform: rotateY(0); + transform: rotateY(0); + } +} +@keyframes ah-rotate-3-in { + 0% { + -webkit-transform: rotateY(180deg); + transform: rotateY(180deg); + } + 100% { + -webkit-transform: rotateY(0); + transform: rotateY(0); + } +} +@-webkit-keyframes ah-rotate-3-out { + 0% { + -webkit-transform: rotateY(0); + transform: rotateY(0); + } + 100% { + -webkit-transform: rotateY(-180deg); + transform: rotateY(-180deg); + } +} +@keyframes ah-rotate-3-out { + 0% { + -webkit-transform: rotateY(0); + transform: rotateY(0); + } + 100% { + -webkit-transform: rotateY(-180deg); + transform: rotateY(-180deg); + } +} +.ah-headline.scale b { + opacity: 0; +} +.ah-headline.scale i { + display: inline-block; + opacity: 0; + -webkit-transform: scale(0); + transform: scale(0); +} +.is-visible .ah-headline.scale i { + opacity: 1; +} +.ah-headline.scale i.in { + -webkit-animation: scale-up 0.6s forwards; + animation: scale-up 0.6s forwards; +} +.ah-headline.scale i.out { + -webkit-animation: scale-down 0.6s forwards; + animation: scale-down 0.6s forwards; +} +.no-csstransitions .ah-headline.scale i { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; +} +.no-csstransitions .ah-headline.scale .is-visible i { + opacity: 1; +} +@-webkit-keyframes scale-up { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + } + 60% { + -webkit-transform: scale(1.2); + transform: scale(1.2); + opacity: 1; + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +@keyframes scale-up { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + } + 60% { + -webkit-transform: scale(1.2); + transform: scale(1.2); + opacity: 1; + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +@-webkit-keyframes scale-down { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 60% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + } +} +@keyframes scale-down { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 60% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + } +} +.ah-headline.push b { + opacity: 0; +} +.ah-headline.push b.is-visible { + opacity: 1; + -webkit-animation: push-in 0.6s; + animation: push-in 0.6s; +} +.ah-headline.push b.is-hidden { + -webkit-animation: push-out 0.6s; + animation: push-out 0.6s; +} +@-webkit-keyframes push-in { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + 60% { + opacity: 1; + -webkit-transform: translateX(10%); + transform: translateX(10%); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes push-in { + 0% { + opacity: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } + 60% { + opacity: 1; + -webkit-transform: translateX(10%); + transform: translateX(10%); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes push-out { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } + 60% { + opacity: 0; + -webkit-transform: translateX(110%); + transform: translateX(110%); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} +@keyframes push-out { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } + 60% { + opacity: 0; + -webkit-transform: translateX(110%); + transform: translateX(110%); + } + 100% { + opacity: 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} diff --git a/influxerp_com/public/css/services_theme.css b/influxerp_com/public/css/services_theme.css new file mode 100644 index 0000000..7e6dd9c --- /dev/null +++ b/influxerp_com/public/css/services_theme.css @@ -0,0 +1,325 @@ +body { + font-family: 'Open Sans', sans-serif; + font-size: 15px; + color: @text-light; + text-rendering: optimizeLegibility !important; + line-height: 1.5em; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} + +.navbar-brand { + width: 155px; +} + +.button { + display: inline-block; + border-radius: 4px; + padding: 7px 12px 9px; + line-height: 1; + text-decoration: none; +} + +.x-large.button { + font-size: 20px; + padding: 16px 40px; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); +} + +.large.button { + font-size: 1.33em; + padding: 12px 24px 10px; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); +} + +.show { + display: block !important; +} + +.cl-white { + color: #fff; +} +.cl-blue { + color: #5E64FF; +} + +.fnt-34 { + font-size: 34px; +} + +.navbar-icon { + width: 24px; + margin-right: 7px; + margin-top: -3px; +} + +.bg-blue { + background : #5f5fce; +} +.bg-white { + background: #fff; +} +.bg-gray { + background: #f9f9f9; +} +.bg-orange { + background-color: #f39c12; +} +.bg-blue1 { + background-color: #3498db; +} +.bg-green { + background-color: #1abc9c; +} +.bg-red { + background-color: #c0392b; +} +.bg-crm { + background-color: #EF4DB6; +} +.bg-tools { + background-color: #FFF5A7; +} +.bg-hr { + background-color: #2ecc71; +} +.bg-projects { + background-color: #8e44ad; +} +.bg-support { + background-color: #2c3e50; +} +.bg-profit { + background-color: #3498db; +} +.bg-website { + background-color: #16a085; +} +.bg-maintenance { + background-color: #FF888B; +} +.bg-explore { + background-color: #7578f6; +} + +.padd-0 { + padding: 0; +} +.white-btn { + background: #fff; + color: #7574ff; + border: 0px; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); + font-size: 1em; +} +.white-btn:hover { + text-decoration: none; + background: #7574ff; + color: #fff; + border-bottom: 3px solid rgba(117, 116, 255, 0.2); +} + +.blue-btn { + background: #7574ff; + color: #fff; + border: 0px; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); + font-size: 1em; +} +.blue-btn:hover { + text-decoration: none; + background: #7574ff; + color: #fff; + border-bottom: 3px solid rgba(117, 116, 255, 0.2); +} + +.mar-t-0 { + margin-top: 0; +} +.mar-t-20 { + margin-top: 20px; +} + +.mar-t-50 { + margin-top: 50px; +} +.mar-b-50 { + margin-bottom: 50px; +} + +.h2 { + font-size: 26px; + color: #36414c; + line-height: 30px; + margin-bottom: 35px; +} +.p { + font-size: 18px; + color: #6c7680; + line-height: 30px; + margin-bottom: 35px; +} + +.cl-light-gray { + color: #b8c2cc; +} +.section-block { + padding: 75px 0; +} +.testimonial-img { + margin: auto; + max-width: 150px; +} +.testimonial_name { + color: #36414c; + font-size: 18px; + margin-top: 40px; +} +.case-wrapper { + position: relative; + margin: 0px; + float: left; + width: 138px; + height: 140px; +} +.app-icon { + padding: 17px 20px 17px 20px; + display: inline-block; + margin: auto; + text-align: center; + border-radius: 16px; + box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.15); +} +.case-label { + font-size: 12px; + font-weight: bold; + letter-spacing: 0.4px; + color: #36414c; + text-align: center; + margin-top: 10px; + transition: 0.2s; + -webkit-transition: 0.2s; +} +.ellipsis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; + vertical-align: middle; +} + +#icon-grid { + max-width: 970px; + margin: auto; +} + +#icon-grid svg { + fill: #fff; +} + +.footer-list { + text-align: center; + display: inline-block; + width: 100%; + margin-top: 30px; + margin-bottom: 10px; +} + +footer ul, footer ul li { + margin: 0; + padding: 0; + list-style-type: none; + text-align: center; +} + +.footer-list li { + margin: 0px 15px; + display: inline-block; +} + +footer li a { + text-decoration: none; + color: #36414c; + font-size: 16px; +} + +.copyright { + font-size: 14px; + text-align: center; + padding-bottom: 50px; +} +.copyright p { + padding-bottom: 0px; + color: #B8C2CC; +} +.underline { + color: inherit; + text-decoration: underline; +} +.clearfix { + clear: both; +} + +@media screen and (max-width: 767px) +{ + .heading { + font-size: 24px; + } + .octicon-three-bars { + font-size: 26px; + } + .x-large.button { + font-size: 18px; + padding: 12px 31px; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); + } + .section-block { + padding: 25px 0; + } + .h2 { + font-size: 20px; + text-align: center; + } + .p { + font-size: 16px; + text-align: center; + } + .toggle-sidebar { + margin-right: 10px; + margin-top: 10px; + } + .large.button { + font-size: 16px; + } + .case-wrapper { + width: 110px; + } + + footer { + padding: 0 15px; + } + + .footer-list li { + margin: 0px 15px 20px; + display: block; + float: left; + width: 23%; + text-align: left; + } + .pricing-section { + padding-left: 0; + padding-right: 0; + } + hr.mar-t-50 { + margin-top: 0; + } + +} + +@media screen and (max-width: 480px) +{ + .x-large.button { + display: block; + } +} + diff --git a/influxerp_com/public/images/agriculture/agri-desk-hero.png b/influxerp_com/public/images/agriculture/agri-desk-hero.png new file mode 100644 index 0000000..1ec6107 Binary files /dev/null and b/influxerp_com/public/images/agriculture/agri-desk-hero.png differ diff --git a/influxerp_com/public/images/agriculture/crop-cycle-gantt.png b/influxerp_com/public/images/agriculture/crop-cycle-gantt.png new file mode 100644 index 0000000..46c67cf Binary files /dev/null and b/influxerp_com/public/images/agriculture/crop-cycle-gantt.png differ diff --git a/influxerp_com/public/images/agriculture/crop-cycle.png b/influxerp_com/public/images/agriculture/crop-cycle.png new file mode 100644 index 0000000..e9b740b Binary files /dev/null and b/influxerp_com/public/images/agriculture/crop-cycle.png differ diff --git a/influxerp_com/public/images/agriculture/crop.png b/influxerp_com/public/images/agriculture/crop.png new file mode 100644 index 0000000..4ec02e1 Binary files /dev/null and b/influxerp_com/public/images/agriculture/crop.png differ diff --git a/influxerp_com/public/images/agriculture/disease.png b/influxerp_com/public/images/agriculture/disease.png new file mode 100644 index 0000000..d77a145 Binary files /dev/null and b/influxerp_com/public/images/agriculture/disease.png differ diff --git a/influxerp_com/public/images/agriculture/land-unit.png b/influxerp_com/public/images/agriculture/land-unit.png new file mode 100644 index 0000000..215e71f Binary files /dev/null and b/influxerp_com/public/images/agriculture/land-unit.png differ diff --git a/influxerp_com/public/images/agriculture/ray-kinsella-2.jpg b/influxerp_com/public/images/agriculture/ray-kinsella-2.jpg new file mode 100644 index 0000000..1a441b9 Binary files /dev/null and b/influxerp_com/public/images/agriculture/ray-kinsella-2.jpg differ diff --git a/influxerp_com/public/images/agriculture/soil-texture.png b/influxerp_com/public/images/agriculture/soil-texture.png new file mode 100644 index 0000000..9b2233c Binary files /dev/null and b/influxerp_com/public/images/agriculture/soil-texture.png differ diff --git a/influxerp_com/public/images/android.png b/influxerp_com/public/images/android.png new file mode 100644 index 0000000..4833991 Binary files /dev/null and b/influxerp_com/public/images/android.png differ diff --git a/influxerp_com/public/images/conf-2015/hero+gradient.svg b/influxerp_com/public/images/conf-2015/hero+gradient.svg new file mode 100644 index 0000000..7522e9c --- /dev/null +++ b/influxerp_com/public/images/conf-2015/hero+gradient.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/influxerp_com/public/images/conf-2015/lanyard.svg b/influxerp_com/public/images/conf-2015/lanyard.svg new file mode 100644 index 0000000..47dd782 --- /dev/null +++ b/influxerp_com/public/images/conf-2015/lanyard.svg @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/influxerp_com/public/images/conf-2015/speakers/Abhay.jpg b/influxerp_com/public/images/conf-2015/speakers/Abhay.jpg new file mode 100644 index 0000000..29c8e69 Binary files /dev/null and b/influxerp_com/public/images/conf-2015/speakers/Abhay.jpg differ diff --git a/influxerp_com/public/images/conf-2015/speakers/Jordan.jpg b/influxerp_com/public/images/conf-2015/speakers/Jordan.jpg new file mode 100644 index 0000000..631d3ad Binary files /dev/null and b/influxerp_com/public/images/conf-2015/speakers/Jordan.jpg differ diff --git a/influxerp_com/public/images/conf-2015/speakers/Rushabh.jpg b/influxerp_com/public/images/conf-2015/speakers/Rushabh.jpg new file mode 100644 index 0000000..648944b Binary files /dev/null and b/influxerp_com/public/images/conf-2015/speakers/Rushabh.jpg differ diff --git a/influxerp_com/public/images/conf-2016/Cloude8.png b/influxerp_com/public/images/conf-2016/Cloude8.png new file mode 100644 index 0000000..691c066 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/Cloude8.png differ diff --git a/influxerp_com/public/images/conf-2016/Indictrans.png b/influxerp_com/public/images/conf-2016/Indictrans.png new file mode 100644 index 0000000..50c87a2 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/Indictrans.png differ diff --git a/influxerp_com/public/images/conf-2016/Manqala.png b/influxerp_com/public/images/conf-2016/Manqala.png new file mode 100644 index 0000000..8506a29 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/Manqala.png differ diff --git a/influxerp_com/public/images/conf-2016/ag.png b/influxerp_com/public/images/conf-2016/ag.png new file mode 100644 index 0000000..4bd74b8 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/ag.png differ diff --git a/influxerp_com/public/images/conf-2016/digithinkit.png b/influxerp_com/public/images/conf-2016/digithinkit.png new file mode 100644 index 0000000..b65e569 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/digithinkit.png differ diff --git a/influxerp_com/public/images/conf-2016/ia.png b/influxerp_com/public/images/conf-2016/ia.png new file mode 100644 index 0000000..8048614 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/ia.png differ diff --git a/influxerp_com/public/images/conf-2016/influxframework.png b/influxerp_com/public/images/conf-2016/influxframework.png new file mode 100644 index 0000000..d6b2e51 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/influxframework.png differ diff --git a/influxerp_com/public/images/conf-2016/korecent.png b/influxerp_com/public/images/conf-2016/korecent.png new file mode 100644 index 0000000..abcdb52 Binary files /dev/null and b/influxerp_com/public/images/conf-2016/korecent.png differ diff --git a/influxerp_com/public/images/conf-2016/mnt.svg b/influxerp_com/public/images/conf-2016/mnt.svg new file mode 100644 index 0000000..d112853 --- /dev/null +++ b/influxerp_com/public/images/conf-2016/mnt.svg @@ -0,0 +1,125 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + MN Technique + + + + + + + + + + + diff --git a/influxerp_com/public/images/conf-2017-eu/eso.png b/influxerp_com/public/images/conf-2017-eu/eso.png new file mode 100644 index 0000000..1087c61 Binary files /dev/null and b/influxerp_com/public/images/conf-2017-eu/eso.png differ diff --git a/influxerp_com/public/images/conf-2017-eu/frankfurt.jpeg b/influxerp_com/public/images/conf-2017-eu/frankfurt.jpeg new file mode 100644 index 0000000..af2d830 Binary files /dev/null and b/influxerp_com/public/images/conf-2017-eu/frankfurt.jpeg differ diff --git a/influxerp_com/public/images/conf-2017-eu/influxerp-eu-plain.jpeg b/influxerp_com/public/images/conf-2017-eu/influxerp-eu-plain.jpeg new file mode 100644 index 0000000..ab384f8 Binary files /dev/null and b/influxerp_com/public/images/conf-2017-eu/influxerp-eu-plain.jpeg differ diff --git a/influxerp_com/public/images/conf-2017-eu/influxerp-eu.jpeg b/influxerp_com/public/images/conf-2017-eu/influxerp-eu.jpeg new file mode 100644 index 0000000..6d1f21c Binary files /dev/null and b/influxerp_com/public/images/conf-2017-eu/influxerp-eu.jpeg differ diff --git a/influxerp_com/public/images/conf-2017-eu/tayseer.png b/influxerp_com/public/images/conf-2017-eu/tayseer.png new file mode 100644 index 0000000..54ccba8 Binary files /dev/null and b/influxerp_com/public/images/conf-2017-eu/tayseer.png differ diff --git a/influxerp_com/public/images/conf/influxerp-conf-14.png b/influxerp_com/public/images/conf/influxerp-conf-14.png new file mode 100644 index 0000000..30786ba Binary files /dev/null and b/influxerp_com/public/images/conf/influxerp-conf-14.png differ diff --git a/influxerp_com/public/images/conf/matunga-1.jpg b/influxerp_com/public/images/conf/matunga-1.jpg new file mode 100644 index 0000000..9b678df Binary files /dev/null and b/influxerp_com/public/images/conf/matunga-1.jpg differ diff --git a/influxerp_com/public/images/conf/matunga-2.jpg b/influxerp_com/public/images/conf/matunga-2.jpg new file mode 100644 index 0000000..43b36b0 Binary files /dev/null and b/influxerp_com/public/images/conf/matunga-2.jpg differ diff --git a/influxerp_com/public/images/conf/matunga-3.jpg b/influxerp_com/public/images/conf/matunga-3.jpg new file mode 100644 index 0000000..b28baa0 Binary files /dev/null and b/influxerp_com/public/images/conf/matunga-3.jpg differ diff --git a/influxerp_com/public/images/conf/matunga-4.jpg b/influxerp_com/public/images/conf/matunga-4.jpg new file mode 100644 index 0000000..d4e63a6 Binary files /dev/null and b/influxerp_com/public/images/conf/matunga-4.jpg differ diff --git a/influxerp_com/public/images/conf/matunga-5.jpg b/influxerp_com/public/images/conf/matunga-5.jpg new file mode 100644 index 0000000..9b7a100 Binary files /dev/null and b/influxerp_com/public/images/conf/matunga-5.jpg differ diff --git a/influxerp_com/public/images/conf/videos/aditya-duggal.jpg b/influxerp_com/public/images/conf/videos/aditya-duggal.jpg new file mode 100644 index 0000000..30bc6f1 Binary files /dev/null and b/influxerp_com/public/images/conf/videos/aditya-duggal.jpg differ diff --git a/influxerp_com/public/images/conf/videos/anand-doshi.jpg b/influxerp_com/public/images/conf/videos/anand-doshi.jpg new file mode 100644 index 0000000..e8832f1 Binary files /dev/null and b/influxerp_com/public/images/conf/videos/anand-doshi.jpg differ diff --git a/influxerp_com/public/images/conf/videos/deepak-gupta.jpg b/influxerp_com/public/images/conf/videos/deepak-gupta.jpg new file mode 100644 index 0000000..6d9eb7f Binary files /dev/null and b/influxerp_com/public/images/conf/videos/deepak-gupta.jpg differ diff --git a/influxerp_com/public/images/conf/videos/global-community.jpg b/influxerp_com/public/images/conf/videos/global-community.jpg new file mode 100644 index 0000000..9a48d38 Binary files /dev/null and b/influxerp_com/public/images/conf/videos/global-community.jpg differ diff --git a/influxerp_com/public/images/conf/videos/mahesh-malani.jpg b/influxerp_com/public/images/conf/videos/mahesh-malani.jpg new file mode 100644 index 0000000..d244d0b Binary files /dev/null and b/influxerp_com/public/images/conf/videos/mahesh-malani.jpg differ diff --git a/influxerp_com/public/images/conf/videos/nabin-hait.jpg b/influxerp_com/public/images/conf/videos/nabin-hait.jpg new file mode 100644 index 0000000..732de4e Binary files /dev/null and b/influxerp_com/public/images/conf/videos/nabin-hait.jpg differ diff --git a/influxerp_com/public/images/conf/videos/prashant-thakkar.jpg b/influxerp_com/public/images/conf/videos/prashant-thakkar.jpg new file mode 100644 index 0000000..0f2c662 Binary files /dev/null and b/influxerp_com/public/images/conf/videos/prashant-thakkar.jpg differ diff --git a/influxerp_com/public/images/conf/videos/rushabh-mehta.jpg b/influxerp_com/public/images/conf/videos/rushabh-mehta.jpg new file mode 100644 index 0000000..50e2ae9 Binary files /dev/null and b/influxerp_com/public/images/conf/videos/rushabh-mehta.jpg differ diff --git a/influxerp_com/public/images/conf/videos/sonal-ramnathkar.jpg b/influxerp_com/public/images/conf/videos/sonal-ramnathkar.jpg new file mode 100644 index 0000000..26ab4ea Binary files /dev/null and b/influxerp_com/public/images/conf/videos/sonal-ramnathkar.jpg differ diff --git a/influxerp_com/public/images/conf/videos/tarun-gupta.jpg b/influxerp_com/public/images/conf/videos/tarun-gupta.jpg new file mode 100644 index 0000000..ed13a29 Binary files /dev/null and b/influxerp_com/public/images/conf/videos/tarun-gupta.jpg differ diff --git a/influxerp_com/public/images/conf/videos/umair-sayyed.jpg b/influxerp_com/public/images/conf/videos/umair-sayyed.jpg new file mode 100644 index 0000000..915482c Binary files /dev/null and b/influxerp_com/public/images/conf/videos/umair-sayyed.jpg differ diff --git a/influxerp_com/public/images/distribution/distrubution_1_inventory.jpg b/influxerp_com/public/images/distribution/distrubution_1_inventory.jpg new file mode 100644 index 0000000..b2bcbff Binary files /dev/null and b/influxerp_com/public/images/distribution/distrubution_1_inventory.jpg differ diff --git a/influxerp_com/public/images/distribution/distrubution_2_salespurchase.jpg b/influxerp_com/public/images/distribution/distrubution_2_salespurchase.jpg new file mode 100644 index 0000000..cb645c0 Binary files /dev/null and b/influxerp_com/public/images/distribution/distrubution_2_salespurchase.jpg differ diff --git a/influxerp_com/public/images/distribution/distrubution_3_billing.jpg b/influxerp_com/public/images/distribution/distrubution_3_billing.jpg new file mode 100644 index 0000000..aa417c4 Binary files /dev/null and b/influxerp_com/public/images/distribution/distrubution_3_billing.jpg differ diff --git a/influxerp_com/public/images/distribution/distrubution_4_hr.jpg b/influxerp_com/public/images/distribution/distrubution_4_hr.jpg new file mode 100644 index 0000000..2d1ceb0 Binary files /dev/null and b/influxerp_com/public/images/distribution/distrubution_4_hr.jpg differ diff --git a/influxerp_com/public/images/distribution/distrubution_5_autoreorder.jpg b/influxerp_com/public/images/distribution/distrubution_5_autoreorder.jpg new file mode 100644 index 0000000..02b637c Binary files /dev/null and b/influxerp_com/public/images/distribution/distrubution_5_autoreorder.jpg differ diff --git a/influxerp_com/public/images/distribution/hero.jpg b/influxerp_com/public/images/distribution/hero.jpg new file mode 100644 index 0000000..fa222cd Binary files /dev/null and b/influxerp_com/public/images/distribution/hero.jpg differ diff --git a/influxerp_com/public/images/enterprise-blogs.png b/influxerp_com/public/images/enterprise-blogs.png new file mode 100644 index 0000000..27a12a6 Binary files /dev/null and b/influxerp_com/public/images/enterprise-blogs.png differ diff --git a/influxerp_com/public/images/features/blog.png b/influxerp_com/public/images/features/blog.png new file mode 100644 index 0000000..77a647d Binary files /dev/null and b/influxerp_com/public/images/features/blog.png differ diff --git a/influxerp_com/public/images/features/catalog.png b/influxerp_com/public/images/features/catalog.png new file mode 100644 index 0000000..cb489f8 Binary files /dev/null and b/influxerp_com/public/images/features/catalog.png differ diff --git a/influxerp_com/public/images/features/custom-doctype.png b/influxerp_com/public/images/features/custom-doctype.png new file mode 100644 index 0000000..3a08267 Binary files /dev/null and b/influxerp_com/public/images/features/custom-doctype.png differ diff --git a/influxerp_com/public/images/features/customize.png b/influxerp_com/public/images/features/customize.png new file mode 100644 index 0000000..d393cae Binary files /dev/null and b/influxerp_com/public/images/features/customize.png differ diff --git a/influxerp_com/public/images/features/desktop.png b/influxerp_com/public/images/features/desktop.png new file mode 100644 index 0000000..f95c4be Binary files /dev/null and b/influxerp_com/public/images/features/desktop.png differ diff --git a/influxerp_com/public/images/features/financial-analytics.png b/influxerp_com/public/images/features/financial-analytics.png new file mode 100644 index 0000000..18350d1 Binary files /dev/null and b/influxerp_com/public/images/features/financial-analytics.png differ diff --git a/influxerp_com/public/images/features/invoice.png b/influxerp_com/public/images/features/invoice.png new file mode 100644 index 0000000..91d25c1 Binary files /dev/null and b/influxerp_com/public/images/features/invoice.png differ diff --git a/influxerp_com/public/images/features/issue.png b/influxerp_com/public/images/features/issue.png new file mode 100644 index 0000000..43a220c Binary files /dev/null and b/influxerp_com/public/images/features/issue.png differ diff --git a/influxerp_com/public/images/features/languages.png b/influxerp_com/public/images/features/languages.png new file mode 100644 index 0000000..e6c5df1 Binary files /dev/null and b/influxerp_com/public/images/features/languages.png differ diff --git a/influxerp_com/public/images/features/mobile.png b/influxerp_com/public/images/features/mobile.png new file mode 100644 index 0000000..edba5ea Binary files /dev/null and b/influxerp_com/public/images/features/mobile.png differ diff --git a/influxerp_com/public/images/features/permission.png b/influxerp_com/public/images/features/permission.png new file mode 100644 index 0000000..6f6b027 Binary files /dev/null and b/influxerp_com/public/images/features/permission.png differ diff --git a/influxerp_com/public/images/features/pos.png b/influxerp_com/public/images/features/pos.png new file mode 100644 index 0000000..3b7a4c0 Binary files /dev/null and b/influxerp_com/public/images/features/pos.png differ diff --git a/influxerp_com/public/images/features/production-plan.png b/influxerp_com/public/images/features/production-plan.png new file mode 100644 index 0000000..7006c4b Binary files /dev/null and b/influxerp_com/public/images/features/production-plan.png differ diff --git a/influxerp_com/public/images/features/projects.png b/influxerp_com/public/images/features/projects.png new file mode 100644 index 0000000..d73bf7b Binary files /dev/null and b/influxerp_com/public/images/features/projects.png differ diff --git a/influxerp_com/public/images/features/purchase-receipt.png b/influxerp_com/public/images/features/purchase-receipt.png new file mode 100644 index 0000000..9778e77 Binary files /dev/null and b/influxerp_com/public/images/features/purchase-receipt.png differ diff --git a/influxerp_com/public/images/features/quotation.png b/influxerp_com/public/images/features/quotation.png new file mode 100644 index 0000000..1824117 Binary files /dev/null and b/influxerp_com/public/images/features/quotation.png differ diff --git a/influxerp_com/public/images/features/role-permission.png b/influxerp_com/public/images/features/role-permission.png new file mode 100644 index 0000000..74af332 Binary files /dev/null and b/influxerp_com/public/images/features/role-permission.png differ diff --git a/influxerp_com/public/images/features/salary-slip.png b/influxerp_com/public/images/features/salary-slip.png new file mode 100644 index 0000000..7a6a82e Binary files /dev/null and b/influxerp_com/public/images/features/salary-slip.png differ diff --git a/influxerp_com/public/images/features/setup-wizard.png b/influxerp_com/public/images/features/setup-wizard.png new file mode 100644 index 0000000..10a610b Binary files /dev/null and b/influxerp_com/public/images/features/setup-wizard.png differ diff --git a/influxerp_com/public/images/features/tablet.png b/influxerp_com/public/images/features/tablet.png new file mode 100644 index 0000000..977aa13 Binary files /dev/null and b/influxerp_com/public/images/features/tablet.png differ diff --git a/influxerp_com/public/images/gcc-vat/TRN-tax-id.png b/influxerp_com/public/images/gcc-vat/TRN-tax-id.png new file mode 100644 index 0000000..98a59f1 Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/TRN-tax-id.png differ diff --git a/influxerp_com/public/images/gcc-vat/UAE-KSA-VAT-POS.png b/influxerp_com/public/images/gcc-vat/UAE-KSA-VAT-POS.png new file mode 100644 index 0000000..5c5fb0d Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/UAE-KSA-VAT-POS.png differ diff --git a/influxerp_com/public/images/gcc-vat/VAT-itemised-tax.png b/influxerp_com/public/images/gcc-vat/VAT-itemised-tax.png new file mode 100644 index 0000000..2b2aea3 Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/VAT-itemised-tax.png differ diff --git a/influxerp_com/public/images/gcc-vat/chart-of-accounts.png b/influxerp_com/public/images/gcc-vat/chart-of-accounts.png new file mode 100644 index 0000000..e9a9486 Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/chart-of-accounts.png differ diff --git a/influxerp_com/public/images/gcc-vat/detailed-tax-invoice.png b/influxerp_com/public/images/gcc-vat/detailed-tax-invoice.png new file mode 100644 index 0000000..5536c8d Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/detailed-tax-invoice.png differ diff --git a/influxerp_com/public/images/gcc-vat/hero-tax-invoice-vat.png b/influxerp_com/public/images/gcc-vat/hero-tax-invoice-vat.png new file mode 100644 index 0000000..a6069b6 Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/hero-tax-invoice-vat.png differ diff --git a/influxerp_com/public/images/gcc-vat/tax-template.png b/influxerp_com/public/images/gcc-vat/tax-template.png new file mode 100644 index 0000000..ad531e2 Binary files /dev/null and b/influxerp_com/public/images/gcc-vat/tax-template.png differ diff --git a/influxerp_com/public/images/healthcare/appointment-analytics.png b/influxerp_com/public/images/healthcare/appointment-analytics.png new file mode 100644 index 0000000..b431db1 Binary files /dev/null and b/influxerp_com/public/images/healthcare/appointment-analytics.png differ diff --git a/influxerp_com/public/images/healthcare/consultation.png b/influxerp_com/public/images/healthcare/consultation.png new file mode 100644 index 0000000..ff35ab1 Binary files /dev/null and b/influxerp_com/public/images/healthcare/consultation.png differ diff --git a/influxerp_com/public/images/healthcare/douglas-roberts-patch.png b/influxerp_com/public/images/healthcare/douglas-roberts-patch.png new file mode 100644 index 0000000..16aca74 Binary files /dev/null and b/influxerp_com/public/images/healthcare/douglas-roberts-patch.png differ diff --git a/influxerp_com/public/images/healthcare/healthcare-hero-patient.png b/influxerp_com/public/images/healthcare/healthcare-hero-patient.png new file mode 100644 index 0000000..d3f35bf Binary files /dev/null and b/influxerp_com/public/images/healthcare/healthcare-hero-patient.png differ diff --git a/influxerp_com/public/images/healthcare/lab-test.png b/influxerp_com/public/images/healthcare/lab-test.png new file mode 100644 index 0000000..32645c4 Binary files /dev/null and b/influxerp_com/public/images/healthcare/lab-test.png differ diff --git a/influxerp_com/public/images/healthcare/patch_adams_prog_1600x900.jpg b/influxerp_com/public/images/healthcare/patch_adams_prog_1600x900.jpg new file mode 100644 index 0000000..cb3dcb3 Binary files /dev/null and b/influxerp_com/public/images/healthcare/patch_adams_prog_1600x900.jpg differ diff --git a/influxerp_com/public/images/healthcare/patient-appointment.png b/influxerp_com/public/images/healthcare/patient-appointment.png new file mode 100644 index 0000000..9c0970c Binary files /dev/null and b/influxerp_com/public/images/healthcare/patient-appointment.png differ diff --git a/influxerp_com/public/images/healthcare/patient-consultation.png b/influxerp_com/public/images/healthcare/patient-consultation.png new file mode 100644 index 0000000..2fafa29 Binary files /dev/null and b/influxerp_com/public/images/healthcare/patient-consultation.png differ diff --git a/influxerp_com/public/images/healthcare/physician-schedule.gif b/influxerp_com/public/images/healthcare/physician-schedule.gif new file mode 100644 index 0000000..93a4bbf Binary files /dev/null and b/influxerp_com/public/images/healthcare/physician-schedule.gif differ diff --git a/influxerp_com/public/images/home.png b/influxerp_com/public/images/home.png new file mode 100644 index 0000000..72881fa Binary files /dev/null and b/influxerp_com/public/images/home.png differ diff --git a/influxerp_com/public/images/home/new-customer.gif b/influxerp_com/public/images/home/new-customer.gif new file mode 100644 index 0000000..db3047b Binary files /dev/null and b/influxerp_com/public/images/home/new-customer.gif differ diff --git a/influxerp_com/public/images/home/new-item.gif b/influxerp_com/public/images/home/new-item.gif new file mode 100644 index 0000000..89e57b8 Binary files /dev/null and b/influxerp_com/public/images/home/new-item.gif differ diff --git a/influxerp_com/public/images/home/new-material-req.gif b/influxerp_com/public/images/home/new-material-req.gif new file mode 100644 index 0000000..dec6708 Binary files /dev/null and b/influxerp_com/public/images/home/new-material-req.gif differ diff --git a/influxerp_com/public/images/home/new-sales-inv.gif b/influxerp_com/public/images/home/new-sales-inv.gif new file mode 100644 index 0000000..9f11445 Binary files /dev/null and b/influxerp_com/public/images/home/new-sales-inv.gif differ diff --git a/influxerp_com/public/images/in-app-support/esi-2.gif b/influxerp_com/public/images/in-app-support/esi-2.gif new file mode 100644 index 0000000..5370d45 Binary files /dev/null and b/influxerp_com/public/images/in-app-support/esi-2.gif differ diff --git a/influxerp_com/public/images/in-app-support/esi-3.gif b/influxerp_com/public/images/in-app-support/esi-3.gif new file mode 100644 index 0000000..b6472b7 Binary files /dev/null and b/influxerp_com/public/images/in-app-support/esi-3.gif differ diff --git a/influxerp_com/public/images/in-app-support/esi-4.gif b/influxerp_com/public/images/in-app-support/esi-4.gif new file mode 100644 index 0000000..f11b4a1 Binary files /dev/null and b/influxerp_com/public/images/in-app-support/esi-4.gif differ diff --git a/influxerp_com/public/images/in-app-support/esi-5.png b/influxerp_com/public/images/in-app-support/esi-5.png new file mode 100644 index 0000000..a7da556 Binary files /dev/null and b/influxerp_com/public/images/in-app-support/esi-5.png differ diff --git a/influxerp_com/public/images/in-app-support/esi.gif b/influxerp_com/public/images/in-app-support/esi.gif new file mode 100644 index 0000000..dbc2105 Binary files /dev/null and b/influxerp_com/public/images/in-app-support/esi.gif differ diff --git a/influxerp_com/public/images/india/GSTR-1.png b/influxerp_com/public/images/india/GSTR-1.png new file mode 100644 index 0000000..070a98b Binary files /dev/null and b/influxerp_com/public/images/india/GSTR-1.png differ diff --git a/influxerp_com/public/images/india/chart-of-accounts-gst-india.png b/influxerp_com/public/images/india/chart-of-accounts-gst-india.png new file mode 100644 index 0000000..cd74452 Binary files /dev/null and b/influxerp_com/public/images/india/chart-of-accounts-gst-india.png differ diff --git a/influxerp_com/public/images/india/gst-itemised-sales.png b/influxerp_com/public/images/india/gst-itemised-sales.png new file mode 100644 index 0000000..ea35754 Binary files /dev/null and b/influxerp_com/public/images/india/gst-itemised-sales.png differ diff --git a/influxerp_com/public/images/india/gst-other-reports.png b/influxerp_com/public/images/india/gst-other-reports.png new file mode 100644 index 0000000..09f1a34 Binary files /dev/null and b/influxerp_com/public/images/india/gst-other-reports.png differ diff --git a/influxerp_com/public/images/india/gst-pos-invoice.png b/influxerp_com/public/images/india/gst-pos-invoice.png new file mode 100644 index 0000000..516ab0a Binary files /dev/null and b/influxerp_com/public/images/india/gst-pos-invoice.png differ diff --git a/influxerp_com/public/images/india/gst-tax-breakup.png b/influxerp_com/public/images/india/gst-tax-breakup.png new file mode 100644 index 0000000..aaa8456 Binary files /dev/null and b/influxerp_com/public/images/india/gst-tax-breakup.png differ diff --git a/influxerp_com/public/images/india/gst-tax-sales-invoice.png b/influxerp_com/public/images/india/gst-tax-sales-invoice.png new file mode 100644 index 0000000..91234d9 Binary files /dev/null and b/influxerp_com/public/images/india/gst-tax-sales-invoice.png differ diff --git a/influxerp_com/public/images/india/gstin-address.png b/influxerp_com/public/images/india/gstin-address.png new file mode 100644 index 0000000..2ee025b Binary files /dev/null and b/influxerp_com/public/images/india/gstin-address.png differ diff --git a/influxerp_com/public/images/india/hsn-code-copy.png b/influxerp_com/public/images/india/hsn-code-copy.png new file mode 100644 index 0000000..d869b9f Binary files /dev/null and b/influxerp_com/public/images/india/hsn-code-copy.png differ diff --git a/influxerp_com/public/images/india/hsn-code.png b/influxerp_com/public/images/india/hsn-code.png new file mode 100644 index 0000000..8e2d99f Binary files /dev/null and b/influxerp_com/public/images/india/hsn-code.png differ diff --git a/influxerp_com/public/images/industries/purchase-order.png b/influxerp_com/public/images/industries/purchase-order.png new file mode 100644 index 0000000..c1f1a27 Binary files /dev/null and b/influxerp_com/public/images/industries/purchase-order.png differ diff --git a/influxerp_com/public/images/industries/sales-analytics.png b/influxerp_com/public/images/industries/sales-analytics.png new file mode 100644 index 0000000..b1ececb Binary files /dev/null and b/influxerp_com/public/images/industries/sales-analytics.png differ diff --git a/influxerp_com/public/images/influxerp-logo-white.svg b/influxerp_com/public/images/influxerp-logo-white.svg new file mode 100644 index 0000000..50df928 --- /dev/null +++ b/influxerp_com/public/images/influxerp-logo-white.svg @@ -0,0 +1,19 @@ + + + + erpnext-logo + Created with Sketch. + + + + + \ No newline at end of file diff --git a/influxerp_com/public/images/influxerp-mobile-hero-cropped.png b/influxerp_com/public/images/influxerp-mobile-hero-cropped.png new file mode 100644 index 0000000..52ac453 Binary files /dev/null and b/influxerp_com/public/images/influxerp-mobile-hero-cropped.png differ diff --git a/influxerp_com/public/images/influxerp-v5.svg b/influxerp_com/public/images/influxerp-v5.svg new file mode 100644 index 0000000..9260f94 --- /dev/null +++ b/influxerp_com/public/images/influxerp-v5.svg @@ -0,0 +1,72 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/influxerp_com/public/images/ios.png b/influxerp_com/public/images/ios.png new file mode 100644 index 0000000..9b56cfc Binary files /dev/null and b/influxerp_com/public/images/ios.png differ diff --git a/influxerp_com/public/images/ios.svg b/influxerp_com/public/images/ios.svg new file mode 100644 index 0000000..0fe477c --- /dev/null +++ b/influxerp_com/public/images/ios.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/influxerp_com/public/images/manufacturing/BOM.png b/influxerp_com/public/images/manufacturing/BOM.png new file mode 100644 index 0000000..6f64dd8 Binary files /dev/null and b/influxerp_com/public/images/manufacturing/BOM.png differ diff --git a/influxerp_com/public/images/manufacturing/Production_Order.png b/influxerp_com/public/images/manufacturing/Production_Order.png new file mode 100644 index 0000000..1ca5940 Binary files /dev/null and b/influxerp_com/public/images/manufacturing/Production_Order.png differ diff --git a/influxerp_com/public/images/manufacturing/Stock_Summary.png b/influxerp_com/public/images/manufacturing/Stock_Summary.png new file mode 100644 index 0000000..338729a Binary files /dev/null and b/influxerp_com/public/images/manufacturing/Stock_Summary.png differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing-hero.png b/influxerp_com/public/images/manufacturing/manufacturing-hero.png new file mode 100644 index 0000000..a74a63d Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing-hero.png differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing_billofmaterials.jpg b/influxerp_com/public/images/manufacturing/manufacturing_billofmaterials.jpg new file mode 100644 index 0000000..f396a0b Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing_billofmaterials.jpg differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing_inventorymanagement.jpg b/influxerp_com/public/images/manufacturing/manufacturing_inventorymanagement.jpg new file mode 100644 index 0000000..0ab4a44 Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing_inventorymanagement.jpg differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing_production.jpg b/influxerp_com/public/images/manufacturing/manufacturing_production.jpg new file mode 100644 index 0000000..e96a657 Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing_production.jpg differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing_productionplanning.jpg b/influxerp_com/public/images/manufacturing/manufacturing_productionplanning.jpg new file mode 100644 index 0000000..7ef8baf Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing_productionplanning.jpg differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing_productionplanning.png b/influxerp_com/public/images/manufacturing/manufacturing_productionplanning.png new file mode 100644 index 0000000..68c3e66 Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing_productionplanning.png differ diff --git a/influxerp_com/public/images/manufacturing/manufacturing_sales.jpg b/influxerp_com/public/images/manufacturing/manufacturing_sales.jpg new file mode 100644 index 0000000..4cf859c Binary files /dev/null and b/influxerp_com/public/images/manufacturing/manufacturing_sales.jpg differ diff --git a/influxerp_com/public/images/non-profit/chapter.png b/influxerp_com/public/images/non-profit/chapter.png new file mode 100644 index 0000000..d7dfc6b Binary files /dev/null and b/influxerp_com/public/images/non-profit/chapter.png differ diff --git a/influxerp_com/public/images/non-profit/donors.png b/influxerp_com/public/images/non-profit/donors.png new file mode 100644 index 0000000..759746e Binary files /dev/null and b/influxerp_com/public/images/non-profit/donors.png differ diff --git a/influxerp_com/public/images/non-profit/grant-applications.png b/influxerp_com/public/images/non-profit/grant-applications.png new file mode 100644 index 0000000..489fbba Binary files /dev/null and b/influxerp_com/public/images/non-profit/grant-applications.png differ diff --git a/influxerp_com/public/images/non-profit/non-profit-hero-linus.png b/influxerp_com/public/images/non-profit/non-profit-hero-linus.png new file mode 100644 index 0000000..176389f Binary files /dev/null and b/influxerp_com/public/images/non-profit/non-profit-hero-linus.png differ diff --git a/influxerp_com/public/images/non-profit/volunteer.png b/influxerp_com/public/images/non-profit/volunteer.png new file mode 100644 index 0000000..e2371af Binary files /dev/null and b/influxerp_com/public/images/non-profit/volunteer.png differ diff --git a/influxerp_com/public/images/retail/invoice.jpg b/influxerp_com/public/images/retail/invoice.jpg new file mode 100644 index 0000000..0768830 Binary files /dev/null and b/influxerp_com/public/images/retail/invoice.jpg differ diff --git a/influxerp_com/public/images/retail/multi-store.jpg b/influxerp_com/public/images/retail/multi-store.jpg new file mode 100644 index 0000000..5e1c46a Binary files /dev/null and b/influxerp_com/public/images/retail/multi-store.jpg differ diff --git a/influxerp_com/public/images/retail/point-of-sale.jpg b/influxerp_com/public/images/retail/point-of-sale.jpg new file mode 100644 index 0000000..5c9c8d0 Binary files /dev/null and b/influxerp_com/public/images/retail/point-of-sale.jpg differ diff --git a/influxerp_com/public/images/retail/retail-hero.jpg b/influxerp_com/public/images/retail/retail-hero.jpg new file mode 100644 index 0000000..3eeb9c8 Binary files /dev/null and b/influxerp_com/public/images/retail/retail-hero.jpg differ diff --git a/influxerp_com/public/images/retail/stock.jpg b/influxerp_com/public/images/retail/stock.jpg new file mode 100644 index 0000000..fa222cd Binary files /dev/null and b/influxerp_com/public/images/retail/stock.jpg differ diff --git a/influxerp_com/public/images/schools/admission.png b/influxerp_com/public/images/schools/admission.png new file mode 100644 index 0000000..08fe937 Binary files /dev/null and b/influxerp_com/public/images/schools/admission.png differ diff --git a/influxerp_com/public/images/schools/assessment.png b/influxerp_com/public/images/schools/assessment.png new file mode 100644 index 0000000..b5581a8 Binary files /dev/null and b/influxerp_com/public/images/schools/assessment.png differ diff --git a/influxerp_com/public/images/schools/attendance.png b/influxerp_com/public/images/schools/attendance.png new file mode 100644 index 0000000..76ca2ea Binary files /dev/null and b/influxerp_com/public/images/schools/attendance.png differ diff --git a/influxerp_com/public/images/schools/dashboard-shot.png b/influxerp_com/public/images/schools/dashboard-shot.png new file mode 100644 index 0000000..34d4482 Binary files /dev/null and b/influxerp_com/public/images/schools/dashboard-shot.png differ diff --git a/influxerp_com/public/images/schools/desktop.png b/influxerp_com/public/images/schools/desktop.png new file mode 100644 index 0000000..725b814 Binary files /dev/null and b/influxerp_com/public/images/schools/desktop.png differ diff --git a/influxerp_com/public/images/schools/fees.png b/influxerp_com/public/images/schools/fees.png new file mode 100644 index 0000000..dcba238 Binary files /dev/null and b/influxerp_com/public/images/schools/fees.png differ diff --git a/influxerp_com/public/images/schools/fees/fee-category.png b/influxerp_com/public/images/schools/fees/fee-category.png new file mode 100644 index 0000000..6c8d2e9 Binary files /dev/null and b/influxerp_com/public/images/schools/fees/fee-category.png differ diff --git a/influxerp_com/public/images/schools/fees/fee-structure.png b/influxerp_com/public/images/schools/fees/fee-structure.png new file mode 100644 index 0000000..81f3e20 Binary files /dev/null and b/influxerp_com/public/images/schools/fees/fee-structure.png differ diff --git a/influxerp_com/public/images/schools/fees/fees-section.png b/influxerp_com/public/images/schools/fees/fees-section.png new file mode 100644 index 0000000..119877a Binary files /dev/null and b/influxerp_com/public/images/schools/fees/fees-section.png differ diff --git a/influxerp_com/public/images/schools/fees/fees.png b/influxerp_com/public/images/schools/fees/fees.png new file mode 100644 index 0000000..e2a2fd7 Binary files /dev/null and b/influxerp_com/public/images/schools/fees/fees.png differ diff --git a/influxerp_com/public/images/schools/schedule/course-schedule-att-1.png b/influxerp_com/public/images/schools/schedule/course-schedule-att-1.png new file mode 100644 index 0000000..07130ca Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/course-schedule-att-1.png differ diff --git a/influxerp_com/public/images/schools/schedule/course-schedule-att.png b/influxerp_com/public/images/schools/schedule/course-schedule-att.png new file mode 100644 index 0000000..df1b3af Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/course-schedule-att.png differ diff --git a/influxerp_com/public/images/schools/schedule/course-schedule.png b/influxerp_com/public/images/schools/schedule/course-schedule.png new file mode 100644 index 0000000..c58cabf Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/course-schedule.png differ diff --git a/influxerp_com/public/images/schools/schedule/examination.png b/influxerp_com/public/images/schools/schedule/examination.png new file mode 100644 index 0000000..4e58565 Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/examination.png differ diff --git a/influxerp_com/public/images/schools/schedule/schedule-section.png b/influxerp_com/public/images/schools/schedule/schedule-section.png new file mode 100644 index 0000000..c942a0f Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/schedule-section.png differ diff --git a/influxerp_com/public/images/schools/schedule/scheduling-tool.png b/influxerp_com/public/images/schools/schedule/scheduling-tool.png new file mode 100644 index 0000000..da20eaf Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/scheduling-tool.png differ diff --git a/influxerp_com/public/images/schools/schedule/student-attendance.png b/influxerp_com/public/images/schools/schedule/student-attendance.png new file mode 100644 index 0000000..5cc4086 Binary files /dev/null and b/influxerp_com/public/images/schools/schedule/student-attendance.png differ diff --git a/influxerp_com/public/images/schools/school-hero.png b/influxerp_com/public/images/schools/school-hero.png new file mode 100644 index 0000000..4f53a1f Binary files /dev/null and b/influxerp_com/public/images/schools/school-hero.png differ diff --git a/influxerp_com/public/images/schools/school.png b/influxerp_com/public/images/schools/school.png new file mode 100644 index 0000000..2ebc4cd Binary files /dev/null and b/influxerp_com/public/images/schools/school.png differ diff --git a/influxerp_com/public/images/schools/student-group.png b/influxerp_com/public/images/schools/student-group.png new file mode 100644 index 0000000..58a503e Binary files /dev/null and b/influxerp_com/public/images/schools/student-group.png differ diff --git a/influxerp_com/public/images/schools/student.png b/influxerp_com/public/images/schools/student.png new file mode 100644 index 0000000..55e162e Binary files /dev/null and b/influxerp_com/public/images/schools/student.png differ diff --git a/influxerp_com/public/images/schools/student/program-enrollment.png b/influxerp_com/public/images/schools/student/program-enrollment.png new file mode 100644 index 0000000..df96f3c Binary files /dev/null and b/influxerp_com/public/images/schools/student/program-enrollment.png differ diff --git a/influxerp_com/public/images/schools/student/program.png b/influxerp_com/public/images/schools/student/program.png new file mode 100644 index 0000000..987cc13 Binary files /dev/null and b/influxerp_com/public/images/schools/student/program.png differ diff --git a/influxerp_com/public/images/schools/student/student-applicant-enroll.png b/influxerp_com/public/images/schools/student/student-applicant-enroll.png new file mode 100644 index 0000000..fb92a67 Binary files /dev/null and b/influxerp_com/public/images/schools/student/student-applicant-enroll.png differ diff --git a/influxerp_com/public/images/schools/student/student-applicant.png b/influxerp_com/public/images/schools/student/student-applicant.png new file mode 100644 index 0000000..addf8cb Binary files /dev/null and b/influxerp_com/public/images/schools/student/student-applicant.png differ diff --git a/influxerp_com/public/images/schools/student/student-group-creation-tool.png b/influxerp_com/public/images/schools/student/student-group-creation-tool.png new file mode 100644 index 0000000..32e6498 Binary files /dev/null and b/influxerp_com/public/images/schools/student/student-group-creation-tool.png differ diff --git a/influxerp_com/public/images/schools/student/student-group.png b/influxerp_com/public/images/schools/student/student-group.png new file mode 100644 index 0000000..894ef91 Binary files /dev/null and b/influxerp_com/public/images/schools/student/student-group.png differ diff --git a/influxerp_com/public/images/schools/student/student-section.png b/influxerp_com/public/images/schools/student/student-section.png new file mode 100644 index 0000000..009443d Binary files /dev/null and b/influxerp_com/public/images/schools/student/student-section.png differ diff --git a/influxerp_com/public/images/schools/student/student.png b/influxerp_com/public/images/schools/student/student.png new file mode 100644 index 0000000..2f23ce7 Binary files /dev/null and b/influxerp_com/public/images/schools/student/student.png differ diff --git a/influxerp_com/public/images/schools/student_data.png b/influxerp_com/public/images/schools/student_data.png new file mode 100644 index 0000000..c546ad3 Binary files /dev/null and b/influxerp_com/public/images/schools/student_data.png differ diff --git a/influxerp_com/public/images/services/crm.png b/influxerp_com/public/images/services/crm.png new file mode 100644 index 0000000..3e43c92 Binary files /dev/null and b/influxerp_com/public/images/services/crm.png differ diff --git a/influxerp_com/public/images/services/dashboard.png b/influxerp_com/public/images/services/dashboard.png new file mode 100644 index 0000000..d42ec9b Binary files /dev/null and b/influxerp_com/public/images/services/dashboard.png differ diff --git a/influxerp_com/public/images/services/desktop.png b/influxerp_com/public/images/services/desktop.png new file mode 100644 index 0000000..f95c4be Binary files /dev/null and b/influxerp_com/public/images/services/desktop.png differ diff --git a/influxerp_com/public/images/services/hr.png b/influxerp_com/public/images/services/hr.png new file mode 100644 index 0000000..8350f0b Binary files /dev/null and b/influxerp_com/public/images/services/hr.png differ diff --git a/influxerp_com/public/images/services/invoice.png b/influxerp_com/public/images/services/invoice.png new file mode 100644 index 0000000..72f7aee Binary files /dev/null and b/influxerp_com/public/images/services/invoice.png differ diff --git a/influxerp_com/public/images/services/projects.png b/influxerp_com/public/images/services/projects.png new file mode 100644 index 0000000..8768b29 Binary files /dev/null and b/influxerp_com/public/images/services/projects.png differ diff --git a/influxerp_com/public/images/services/screen.png b/influxerp_com/public/images/services/screen.png new file mode 100644 index 0000000..9dfb5d5 Binary files /dev/null and b/influxerp_com/public/images/services/screen.png differ diff --git a/influxerp_com/public/images/services/services-hero.png b/influxerp_com/public/images/services/services-hero.png new file mode 100644 index 0000000..70e0c4e Binary files /dev/null and b/influxerp_com/public/images/services/services-hero.png differ diff --git a/influxerp_com/public/images/services/support.png b/influxerp_com/public/images/services/support.png new file mode 100644 index 0000000..4026e7c Binary files /dev/null and b/influxerp_com/public/images/services/support.png differ diff --git a/influxerp_com/public/images/services/user.png b/influxerp_com/public/images/services/user.png new file mode 100644 index 0000000..16e5475 Binary files /dev/null and b/influxerp_com/public/images/services/user.png differ diff --git a/influxerp_com/public/images/stories/aditya-duggal.png b/influxerp_com/public/images/stories/aditya-duggal.png new file mode 100644 index 0000000..34e3486 Binary files /dev/null and b/influxerp_com/public/images/stories/aditya-duggal.png differ diff --git a/influxerp_com/public/images/stories/alcon-logo.png b/influxerp_com/public/images/stories/alcon-logo.png new file mode 100644 index 0000000..f6dec2c Binary files /dev/null and b/influxerp_com/public/images/stories/alcon-logo.png differ diff --git a/influxerp_com/public/images/stories/becht.jpg b/influxerp_com/public/images/stories/becht.jpg new file mode 100644 index 0000000..0bfd4cd Binary files /dev/null and b/influxerp_com/public/images/stories/becht.jpg differ diff --git a/influxerp_com/public/images/stories/fritzing-1.png b/influxerp_com/public/images/stories/fritzing-1.png new file mode 100644 index 0000000..7d8928c Binary files /dev/null and b/influxerp_com/public/images/stories/fritzing-1.png differ diff --git a/influxerp_com/public/images/stories/fritzing-board.png b/influxerp_com/public/images/stories/fritzing-board.png new file mode 100644 index 0000000..0696e4f Binary files /dev/null and b/influxerp_com/public/images/stories/fritzing-board.png differ diff --git a/influxerp_com/public/images/stories/fritzing-board2.png b/influxerp_com/public/images/stories/fritzing-board2.png new file mode 100644 index 0000000..a2ad866 Binary files /dev/null and b/influxerp_com/public/images/stories/fritzing-board2.png differ diff --git a/influxerp_com/public/images/stories/fritzing-lab.png b/influxerp_com/public/images/stories/fritzing-lab.png new file mode 100644 index 0000000..b666460 Binary files /dev/null and b/influxerp_com/public/images/stories/fritzing-lab.png differ diff --git a/influxerp_com/public/images/stories/fritzing-logo.png b/influxerp_com/public/images/stories/fritzing-logo.png new file mode 100644 index 0000000..687ee7e Binary files /dev/null and b/influxerp_com/public/images/stories/fritzing-logo.png differ diff --git a/influxerp_com/public/images/stories/fritzing-ohs.png b/influxerp_com/public/images/stories/fritzing-ohs.png new file mode 100644 index 0000000..e9f0af8 Binary files /dev/null and b/influxerp_com/public/images/stories/fritzing-ohs.png differ diff --git a/influxerp_com/public/images/stories/hisham_farid.jpg b/influxerp_com/public/images/stories/hisham_farid.jpg new file mode 100644 index 0000000..5dc4d2c Binary files /dev/null and b/influxerp_com/public/images/stories/hisham_farid.jpg differ diff --git a/influxerp_com/public/images/stories/laurence.jpg b/influxerp_com/public/images/stories/laurence.jpg new file mode 100644 index 0000000..0d32939 Binary files /dev/null and b/influxerp_com/public/images/stories/laurence.jpg differ diff --git a/influxerp_com/public/images/stories/max_morais.jpg b/influxerp_com/public/images/stories/max_morais.jpg new file mode 100644 index 0000000..b4ee6ca Binary files /dev/null and b/influxerp_com/public/images/stories/max_morais.jpg differ diff --git a/influxerp_com/public/images/stories/rigpl-logo.png b/influxerp_com/public/images/stories/rigpl-logo.png new file mode 100644 index 0000000..f4938e9 Binary files /dev/null and b/influxerp_com/public/images/stories/rigpl-logo.png differ diff --git a/influxerp_com/public/images/stories/rigpl-products.png b/influxerp_com/public/images/stories/rigpl-products.png new file mode 100644 index 0000000..9251914 Binary files /dev/null and b/influxerp_com/public/images/stories/rigpl-products.png differ diff --git a/influxerp_com/public/images/stories/tarun-gupta-neural.jpg b/influxerp_com/public/images/stories/tarun-gupta-neural.jpg new file mode 100644 index 0000000..6200479 Binary files /dev/null and b/influxerp_com/public/images/stories/tarun-gupta-neural.jpg differ diff --git a/influxerp_com/public/images/stories/zel-ortiz.png b/influxerp_com/public/images/stories/zel-ortiz.png new file mode 100644 index 0000000..e68941d Binary files /dev/null and b/influxerp_com/public/images/stories/zel-ortiz.png differ diff --git a/influxerp_com/public/images/subscribe.gif b/influxerp_com/public/images/subscribe.gif new file mode 100644 index 0000000..180077e Binary files /dev/null and b/influxerp_com/public/images/subscribe.gif differ diff --git a/influxerp_com/public/images/testimonials/aditya.jpeg b/influxerp_com/public/images/testimonials/aditya.jpeg new file mode 100644 index 0000000..23b439e Binary files /dev/null and b/influxerp_com/public/images/testimonials/aditya.jpeg differ diff --git a/influxerp_com/public/images/testimonials/aditya.jpg b/influxerp_com/public/images/testimonials/aditya.jpg new file mode 100644 index 0000000..aa2bfbb Binary files /dev/null and b/influxerp_com/public/images/testimonials/aditya.jpg differ diff --git a/influxerp_com/public/images/testimonials/ahmed-mourad.jpg b/influxerp_com/public/images/testimonials/ahmed-mourad.jpg new file mode 100644 index 0000000..53dbf9b Binary files /dev/null and b/influxerp_com/public/images/testimonials/ahmed-mourad.jpg differ diff --git a/influxerp_com/public/images/testimonials/alec.jpg b/influxerp_com/public/images/testimonials/alec.jpg new file mode 100644 index 0000000..4138ab0 Binary files /dev/null and b/influxerp_com/public/images/testimonials/alec.jpg differ diff --git a/influxerp_com/public/images/testimonials/bernard.jpg b/influxerp_com/public/images/testimonials/bernard.jpg new file mode 100644 index 0000000..7d99624 Binary files /dev/null and b/influxerp_com/public/images/testimonials/bernard.jpg differ diff --git a/influxerp_com/public/images/testimonials/capterra-200.png b/influxerp_com/public/images/testimonials/capterra-200.png new file mode 100644 index 0000000..b82a358 Binary files /dev/null and b/influxerp_com/public/images/testimonials/capterra-200.png differ diff --git a/influxerp_com/public/images/testimonials/chris-koh.jpg b/influxerp_com/public/images/testimonials/chris-koh.jpg new file mode 100644 index 0000000..ac56c47 Binary files /dev/null and b/influxerp_com/public/images/testimonials/chris-koh.jpg differ diff --git a/influxerp_com/public/images/testimonials/crozdesk-200.png b/influxerp_com/public/images/testimonials/crozdesk-200.png new file mode 100644 index 0000000..b6c5607 Binary files /dev/null and b/influxerp_com/public/images/testimonials/crozdesk-200.png differ diff --git a/influxerp_com/public/images/testimonials/david_gale.jpg b/influxerp_com/public/images/testimonials/david_gale.jpg new file mode 100644 index 0000000..955c916 Binary files /dev/null and b/influxerp_com/public/images/testimonials/david_gale.jpg differ diff --git a/influxerp_com/public/images/testimonials/g2-200-2.png b/influxerp_com/public/images/testimonials/g2-200-2.png new file mode 100644 index 0000000..b335877 Binary files /dev/null and b/influxerp_com/public/images/testimonials/g2-200-2.png differ diff --git a/influxerp_com/public/images/testimonials/getapp-200.png b/influxerp_com/public/images/testimonials/getapp-200.png new file mode 100644 index 0000000..23f9b9e Binary files /dev/null and b/influxerp_com/public/images/testimonials/getapp-200.png differ diff --git a/influxerp_com/public/images/testimonials/gladwynlewis.jpg b/influxerp_com/public/images/testimonials/gladwynlewis.jpg new file mode 100644 index 0000000..8e71e83 Binary files /dev/null and b/influxerp_com/public/images/testimonials/gladwynlewis.jpg differ diff --git a/influxerp_com/public/images/testimonials/hqdefault.jpg b/influxerp_com/public/images/testimonials/hqdefault.jpg new file mode 100644 index 0000000..dcd2ab7 Binary files /dev/null and b/influxerp_com/public/images/testimonials/hqdefault.jpg differ diff --git a/influxerp_com/public/images/testimonials/konrad.png b/influxerp_com/public/images/testimonials/konrad.png new file mode 100644 index 0000000..7d1e4ae Binary files /dev/null and b/influxerp_com/public/images/testimonials/konrad.png differ diff --git a/influxerp_com/public/images/testimonials/manoj.jpeg b/influxerp_com/public/images/testimonials/manoj.jpeg new file mode 100644 index 0000000..40c9eea Binary files /dev/null and b/influxerp_com/public/images/testimonials/manoj.jpeg differ diff --git a/influxerp_com/public/images/testimonials/manoj.png b/influxerp_com/public/images/testimonials/manoj.png new file mode 100644 index 0000000..edb633e Binary files /dev/null and b/influxerp_com/public/images/testimonials/manoj.png differ diff --git a/influxerp_com/public/images/testimonials/sergio.jpg b/influxerp_com/public/images/testimonials/sergio.jpg new file mode 100644 index 0000000..79787cd Binary files /dev/null and b/influxerp_com/public/images/testimonials/sergio.jpg differ diff --git a/influxerp_com/public/images/testimonials/sonal-1.jpg b/influxerp_com/public/images/testimonials/sonal-1.jpg new file mode 100644 index 0000000..2515ef2 Binary files /dev/null and b/influxerp_com/public/images/testimonials/sonal-1.jpg differ diff --git a/influxerp_com/public/images/testimonials/sonal.jpg b/influxerp_com/public/images/testimonials/sonal.jpg new file mode 100644 index 0000000..eadac24 Binary files /dev/null and b/influxerp_com/public/images/testimonials/sonal.jpg differ diff --git a/influxerp_com/public/images/testimonials/stars.png b/influxerp_com/public/images/testimonials/stars.png new file mode 100644 index 0000000..baf37bf Binary files /dev/null and b/influxerp_com/public/images/testimonials/stars.png differ diff --git a/influxerp_com/public/images/testimonials/wolf-dieter.jpg b/influxerp_com/public/images/testimonials/wolf-dieter.jpg new file mode 100644 index 0000000..530a983 Binary files /dev/null and b/influxerp_com/public/images/testimonials/wolf-dieter.jpg differ diff --git a/influxerp_com/public/images/testimonials/zel-ortiz.jpg b/influxerp_com/public/images/testimonials/zel-ortiz.jpg new file mode 100644 index 0000000..b3153f2 Binary files /dev/null and b/influxerp_com/public/images/testimonials/zel-ortiz.jpg differ diff --git a/influxerp_com/public/images/testimonials/zel-ortiz.png b/influxerp_com/public/images/testimonials/zel-ortiz.png new file mode 100644 index 0000000..e68941d Binary files /dev/null and b/influxerp_com/public/images/testimonials/zel-ortiz.png differ diff --git a/influxerp_com/public/images/upgrade.gif b/influxerp_com/public/images/upgrade.gif new file mode 100644 index 0000000..82a828c Binary files /dev/null and b/influxerp_com/public/images/upgrade.gif differ diff --git a/influxerp_com/public/images/version-10/agri_desk.png b/influxerp_com/public/images/version-10/agri_desk.png new file mode 100644 index 0000000..bc1a03b Binary files /dev/null and b/influxerp_com/public/images/version-10/agri_desk.png differ diff --git a/influxerp_com/public/images/version-10/data-import-tool-new.png b/influxerp_com/public/images/version-10/data-import-tool-new.png new file mode 100644 index 0000000..606cd42 Binary files /dev/null and b/influxerp_com/public/images/version-10/data-import-tool-new.png differ diff --git a/influxerp_com/public/images/version-10/employee-advance.jpg b/influxerp_com/public/images/version-10/employee-advance.jpg new file mode 100644 index 0000000..bc496a2 Binary files /dev/null and b/influxerp_com/public/images/version-10/employee-advance.jpg differ diff --git a/influxerp_com/public/images/version-10/influxerp-mobile-hero-cropped.png b/influxerp_com/public/images/version-10/influxerp-mobile-hero-cropped.png new file mode 100644 index 0000000..bc1a03b Binary files /dev/null and b/influxerp_com/public/images/version-10/influxerp-mobile-hero-cropped.png differ diff --git a/influxerp_com/public/images/version-10/non-profit-domain.png b/influxerp_com/public/images/version-10/non-profit-domain.png new file mode 100644 index 0000000..f1bb95a Binary files /dev/null and b/influxerp_com/public/images/version-10/non-profit-domain.png differ diff --git a/influxerp_com/public/images/version-10/payment-terms.jpg b/influxerp_com/public/images/version-10/payment-terms.jpg new file mode 100644 index 0000000..200df26 Binary files /dev/null and b/influxerp_com/public/images/version-10/payment-terms.jpg differ diff --git a/influxerp_com/public/images/version-10/uae-ksa-vat.jpg b/influxerp_com/public/images/version-10/uae-ksa-vat.jpg new file mode 100644 index 0000000..343bb96 Binary files /dev/null and b/influxerp_com/public/images/version-10/uae-ksa-vat.jpg differ diff --git a/influxerp_com/public/images/version-10/version-10.svg b/influxerp_com/public/images/version-10/version-10.svg new file mode 100644 index 0000000..f5fe69b --- /dev/null +++ b/influxerp_com/public/images/version-10/version-10.svg @@ -0,0 +1,105 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/influxerp_com/public/images/version-5/capacity-planning.png b/influxerp_com/public/images/version-5/capacity-planning.png new file mode 100644 index 0000000..320e803 Binary files /dev/null and b/influxerp_com/public/images/version-5/capacity-planning.png differ diff --git a/influxerp_com/public/images/version-5/chart-of-accounts.png b/influxerp_com/public/images/version-5/chart-of-accounts.png new file mode 100644 index 0000000..ac2f420 Binary files /dev/null and b/influxerp_com/public/images/version-5/chart-of-accounts.png differ diff --git a/influxerp_com/public/images/version-5/cleaner-ui.png b/influxerp_com/public/images/version-5/cleaner-ui.png new file mode 100644 index 0000000..68e1d6d Binary files /dev/null and b/influxerp_com/public/images/version-5/cleaner-ui.png differ diff --git a/influxerp_com/public/images/version-5/item-variants.png b/influxerp_com/public/images/version-5/item-variants.png new file mode 100644 index 0000000..0231026 Binary files /dev/null and b/influxerp_com/public/images/version-5/item-variants.png differ diff --git a/influxerp_com/public/images/version-5/print-format-builder.png b/influxerp_com/public/images/version-5/print-format-builder.png new file mode 100644 index 0000000..11b2204 Binary files /dev/null and b/influxerp_com/public/images/version-5/print-format-builder.png differ diff --git a/influxerp_com/public/images/version-5/sharing.png b/influxerp_com/public/images/version-5/sharing.png new file mode 100644 index 0000000..a6bb459 Binary files /dev/null and b/influxerp_com/public/images/version-5/sharing.png differ diff --git a/influxerp_com/public/img/app-store-badge.svg b/influxerp_com/public/img/app-store-badge.svg new file mode 100644 index 0000000..0fe477c --- /dev/null +++ b/influxerp_com/public/img/app-store-badge.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/influxerp_com/public/img/enterprise-launchpad-erpnext.png b/influxerp_com/public/img/enterprise-launchpad-erpnext.png new file mode 100644 index 0000000..1179f07 Binary files /dev/null and b/influxerp_com/public/img/enterprise-launchpad-erpnext.png differ diff --git a/influxerp_com/public/img/enterprise-launchpad-offerings.png b/influxerp_com/public/img/enterprise-launchpad-offerings.png new file mode 100644 index 0000000..7983292 Binary files /dev/null and b/influxerp_com/public/img/enterprise-launchpad-offerings.png differ diff --git a/influxerp_com/public/img/enterprise-launchpad-what-do-you-get.png b/influxerp_com/public/img/enterprise-launchpad-what-do-you-get.png new file mode 100644 index 0000000..09b1d51 Binary files /dev/null and b/influxerp_com/public/img/enterprise-launchpad-what-do-you-get.png differ diff --git a/influxerp_com/public/img/favicon.ico b/influxerp_com/public/img/favicon.ico new file mode 100644 index 0000000..26e2565 Binary files /dev/null and b/influxerp_com/public/img/favicon.ico differ diff --git a/influxerp_com/public/img/front-runners.png b/influxerp_com/public/img/front-runners.png new file mode 100644 index 0000000..b00076b Binary files /dev/null and b/influxerp_com/public/img/front-runners.png differ diff --git a/influxerp_com/public/img/hackathon.jpg b/influxerp_com/public/img/hackathon.jpg new file mode 100644 index 0000000..2990adc Binary files /dev/null and b/influxerp_com/public/img/hackathon.jpg differ diff --git a/influxerp_com/public/img/home/accounts-dashboard.png b/influxerp_com/public/img/home/accounts-dashboard.png new file mode 100644 index 0000000..aef0002 Binary files /dev/null and b/influxerp_com/public/img/home/accounts-dashboard.png differ diff --git a/influxerp_com/public/img/home/accounts-report.png b/influxerp_com/public/img/home/accounts-report.png new file mode 100644 index 0000000..18264b8 Binary files /dev/null and b/influxerp_com/public/img/home/accounts-report.png differ diff --git a/influxerp_com/public/img/home/customer-logos-mobile.png b/influxerp_com/public/img/home/customer-logos-mobile.png new file mode 100644 index 0000000..e1568d0 Binary files /dev/null and b/influxerp_com/public/img/home/customer-logos-mobile.png differ diff --git a/influxerp_com/public/img/home/customer-logos.png b/influxerp_com/public/img/home/customer-logos.png new file mode 100644 index 0000000..af30e9a Binary files /dev/null and b/influxerp_com/public/img/home/customer-logos.png differ diff --git a/influxerp_com/public/img/home/gantt.png b/influxerp_com/public/img/home/gantt.png new file mode 100644 index 0000000..bc78301 Binary files /dev/null and b/influxerp_com/public/img/home/gantt.png differ diff --git a/influxerp_com/public/img/home/getapp.png b/influxerp_com/public/img/home/getapp.png new file mode 100644 index 0000000..a4f189d Binary files /dev/null and b/influxerp_com/public/img/home/getapp.png differ diff --git a/influxerp_com/public/img/home/integrations-mobile.png b/influxerp_com/public/img/home/integrations-mobile.png new file mode 100644 index 0000000..108c24a Binary files /dev/null and b/influxerp_com/public/img/home/integrations-mobile.png differ diff --git a/influxerp_com/public/img/home/integrations.png b/influxerp_com/public/img/home/integrations.png new file mode 100644 index 0000000..7fb4e4c Binary files /dev/null and b/influxerp_com/public/img/home/integrations.png differ diff --git a/influxerp_com/public/img/home/item.png b/influxerp_com/public/img/home/item.png new file mode 100644 index 0000000..43cbc61 Binary files /dev/null and b/influxerp_com/public/img/home/item.png differ diff --git a/influxerp_com/public/img/home/manufacturing.png b/influxerp_com/public/img/home/manufacturing.png new file mode 100644 index 0000000..d628a53 Binary files /dev/null and b/influxerp_com/public/img/home/manufacturing.png differ diff --git a/influxerp_com/public/img/home/print.png b/influxerp_com/public/img/home/print.png new file mode 100644 index 0000000..bd31ac9 Binary files /dev/null and b/influxerp_com/public/img/home/print.png differ diff --git a/influxerp_com/public/img/home/profile.png b/influxerp_com/public/img/home/profile.png new file mode 100644 index 0000000..211a4d5 Binary files /dev/null and b/influxerp_com/public/img/home/profile.png differ diff --git a/influxerp_com/public/img/home/sales-order.png b/influxerp_com/public/img/home/sales-order.png new file mode 100644 index 0000000..cb44a40 Binary files /dev/null and b/influxerp_com/public/img/home/sales-order.png differ diff --git a/influxerp_com/public/img/home/social.png b/influxerp_com/public/img/home/social.png new file mode 100644 index 0000000..6eea331 Binary files /dev/null and b/influxerp_com/public/img/home/social.png differ diff --git a/influxerp_com/public/img/influxerp-community.png b/influxerp_com/public/img/influxerp-community.png new file mode 100644 index 0000000..7f9c169 Binary files /dev/null and b/influxerp_com/public/img/influxerp-community.png differ diff --git a/influxerp_com/public/img/influxerp-logo-blue.png b/influxerp_com/public/img/influxerp-logo-blue.png new file mode 100644 index 0000000..28debe5 Binary files /dev/null and b/influxerp_com/public/img/influxerp-logo-blue.png differ diff --git a/influxerp_com/public/img/influxerp-logo-blue.svg b/influxerp_com/public/img/influxerp-logo-blue.svg new file mode 100644 index 0000000..6bec40c --- /dev/null +++ b/influxerp_com/public/img/influxerp-logo-blue.svg @@ -0,0 +1,21 @@ + + + + erpnext-logo + Created with Sketch. + + + + + \ No newline at end of file diff --git a/influxerp_com/public/img/influxerp-logo.svg b/influxerp_com/public/img/influxerp-logo.svg new file mode 100644 index 0000000..1cf6383 --- /dev/null +++ b/influxerp_com/public/img/influxerp-logo.svg @@ -0,0 +1,12 @@ + + + + erpnext-logo + Created with Sketch. + + + + \ No newline at end of file diff --git a/influxerp_com/public/img/influxframework-team.jpg b/influxerp_com/public/img/influxframework-team.jpg new file mode 100644 index 0000000..97c8aa9 Binary files /dev/null and b/influxerp_com/public/img/influxframework-team.jpg differ diff --git a/influxerp_com/public/img/open-source-benefits.png b/influxerp_com/public/img/open-source-benefits.png new file mode 100644 index 0000000..c394e40 Binary files /dev/null and b/influxerp_com/public/img/open-source-benefits.png differ diff --git a/influxerp_com/public/img/team.jpg b/influxerp_com/public/img/team.jpg new file mode 100644 index 0000000..db0d353 Binary files /dev/null and b/influxerp_com/public/img/team.jpg differ diff --git a/influxerp_com/public/img/unsplash/agriculture.jpg b/influxerp_com/public/img/unsplash/agriculture.jpg new file mode 100644 index 0000000..2a2b826 Binary files /dev/null and b/influxerp_com/public/img/unsplash/agriculture.jpg differ diff --git a/influxerp_com/public/img/unsplash/cyclerace.jpg b/influxerp_com/public/img/unsplash/cyclerace.jpg new file mode 100644 index 0000000..f59c152 Binary files /dev/null and b/influxerp_com/public/img/unsplash/cyclerace.jpg differ diff --git a/influxerp_com/public/img/unsplash/distribution.jpg b/influxerp_com/public/img/unsplash/distribution.jpg new file mode 100644 index 0000000..c723caf Binary files /dev/null and b/influxerp_com/public/img/unsplash/distribution.jpg differ diff --git a/influxerp_com/public/img/unsplash/education.jpg b/influxerp_com/public/img/unsplash/education.jpg new file mode 100644 index 0000000..0415b3d Binary files /dev/null and b/influxerp_com/public/img/unsplash/education.jpg differ diff --git a/influxerp_com/public/img/unsplash/healthcare.jpg b/influxerp_com/public/img/unsplash/healthcare.jpg new file mode 100644 index 0000000..5db0ab0 Binary files /dev/null and b/influxerp_com/public/img/unsplash/healthcare.jpg differ diff --git a/influxerp_com/public/img/unsplash/manufacturing.jpg b/influxerp_com/public/img/unsplash/manufacturing.jpg new file mode 100644 index 0000000..978ef62 Binary files /dev/null and b/influxerp_com/public/img/unsplash/manufacturing.jpg differ diff --git a/influxerp_com/public/img/unsplash/nonprofit.jpg b/influxerp_com/public/img/unsplash/nonprofit.jpg new file mode 100644 index 0000000..3dff72c Binary files /dev/null and b/influxerp_com/public/img/unsplash/nonprofit.jpg differ diff --git a/influxerp_com/public/img/unsplash/pitstop.jpg b/influxerp_com/public/img/unsplash/pitstop.jpg new file mode 100644 index 0000000..3af7a7c Binary files /dev/null and b/influxerp_com/public/img/unsplash/pitstop.jpg differ diff --git a/influxerp_com/public/img/unsplash/retail.jpg b/influxerp_com/public/img/unsplash/retail.jpg new file mode 100644 index 0000000..1ee5401 Binary files /dev/null and b/influxerp_com/public/img/unsplash/retail.jpg differ diff --git a/influxerp_com/public/img/unsplash/services.jpg b/influxerp_com/public/img/unsplash/services.jpg new file mode 100644 index 0000000..0cecf76 Binary files /dev/null and b/influxerp_com/public/img/unsplash/services.jpg differ diff --git a/influxerp_com/public/img/version-12/auto-fetch.gif b/influxerp_com/public/img/version-12/auto-fetch.gif new file mode 100644 index 0000000..99a87e7 Binary files /dev/null and b/influxerp_com/public/img/version-12/auto-fetch.gif differ diff --git a/influxerp_com/public/img/version-12/custom-column.png b/influxerp_com/public/img/version-12/custom-column.png new file mode 100644 index 0000000..4bd2be6 Binary files /dev/null and b/influxerp_com/public/img/version-12/custom-column.png differ diff --git a/influxerp_com/public/img/version-12/dashboards.png b/influxerp_com/public/img/version-12/dashboards.png new file mode 100644 index 0000000..60a1176 Binary files /dev/null and b/influxerp_com/public/img/version-12/dashboards.png differ diff --git a/influxerp_com/public/img/version-12/desk.png b/influxerp_com/public/img/version-12/desk.png new file mode 100644 index 0000000..7570779 Binary files /dev/null and b/influxerp_com/public/img/version-12/desk.png differ diff --git a/influxerp_com/public/img/version-12/dimension.png b/influxerp_com/public/img/version-12/dimension.png new file mode 100644 index 0000000..84ad71c Binary files /dev/null and b/influxerp_com/public/img/version-12/dimension.png differ diff --git a/influxerp_com/public/img/version-12/energy-points.png b/influxerp_com/public/img/version-12/energy-points.png new file mode 100644 index 0000000..74b1f7c Binary files /dev/null and b/influxerp_com/public/img/version-12/energy-points.png differ diff --git a/influxerp_com/public/img/version-12/full-width.gif b/influxerp_com/public/img/version-12/full-width.gif new file mode 100644 index 0000000..96e2347 Binary files /dev/null and b/influxerp_com/public/img/version-12/full-width.gif differ diff --git a/influxerp_com/public/img/version-12/hero.png b/influxerp_com/public/img/version-12/hero.png new file mode 100644 index 0000000..86ed270 Binary files /dev/null and b/influxerp_com/public/img/version-12/hero.png differ diff --git a/influxerp_com/public/img/version-12/link-preview.png b/influxerp_com/public/img/version-12/link-preview.png new file mode 100644 index 0000000..9389d51 Binary files /dev/null and b/influxerp_com/public/img/version-12/link-preview.png differ diff --git a/influxerp_com/public/img/version-12/list-view-buttons.png b/influxerp_com/public/img/version-12/list-view-buttons.png new file mode 100644 index 0000000..76a1ab7 Binary files /dev/null and b/influxerp_com/public/img/version-12/list-view-buttons.png differ diff --git a/influxerp_com/public/img/version-12/list-view-percentage.png b/influxerp_com/public/img/version-12/list-view-percentage.png new file mode 100644 index 0000000..0d90197 Binary files /dev/null and b/influxerp_com/public/img/version-12/list-view-percentage.png differ diff --git a/influxerp_com/public/img/version-12/lms.png b/influxerp_com/public/img/version-12/lms.png new file mode 100644 index 0000000..0c548a6 Binary files /dev/null and b/influxerp_com/public/img/version-12/lms.png differ diff --git a/influxerp_com/public/img/version-12/performance-web.png b/influxerp_com/public/img/version-12/performance-web.png new file mode 100644 index 0000000..cba0392 Binary files /dev/null and b/influxerp_com/public/img/version-12/performance-web.png differ diff --git a/influxerp_com/public/img/version-12/recent-items.png b/influxerp_com/public/img/version-12/recent-items.png new file mode 100644 index 0000000..bf5812f Binary files /dev/null and b/influxerp_com/public/img/version-12/recent-items.png differ diff --git a/influxerp_com/public/img/version-12/upload.png b/influxerp_com/public/img/version-12/upload.png new file mode 100644 index 0000000..95f5ae6 Binary files /dev/null and b/influxerp_com/public/img/version-12/upload.png differ diff --git a/influxerp_com/public/img/version-12/website.png b/influxerp_com/public/img/version-12/website.png new file mode 100644 index 0000000..4e4d070 Binary files /dev/null and b/influxerp_com/public/img/version-12/website.png differ diff --git a/influxerp_com/public/img/white-paper-show.png b/influxerp_com/public/img/white-paper-show.png new file mode 100644 index 0000000..e400ca5 Binary files /dev/null and b/influxerp_com/public/img/white-paper-show.png differ diff --git a/influxerp_com/public/js/chrome-tabs.js b/influxerp_com/public/js/chrome-tabs.js new file mode 100644 index 0000000..78b8d59 --- /dev/null +++ b/influxerp_com/public/js/chrome-tabs.js @@ -0,0 +1,255 @@ +(function(){ + const tabTemplate = ` +
+
+ +
+
+
+
+
+ ` + + const defaultTapProperties = { + title: '', + favicon: '' + } + + let instanceId = 0 + + class ChromeTabs { + constructor() { + this.draggabillyInstances = [] + } + + init(el, options) { + this.el = el + this.options = options + + this.instanceId = instanceId + this.el.setAttribute('data-chrome-tabs-instance-id', this.instanceId) + instanceId += 1 + + this.setupStyleEl() + this.setupEvents() + this.layoutTabs() + this.fixZIndexes() + this.setupDraggabilly() + } + + emit(eventName, data) { + this.el.dispatchEvent(new CustomEvent(eventName, { detail: data })) + } + + setupStyleEl() { + this.animationStyleEl = document.createElement('style') + this.el.appendChild(this.animationStyleEl) + } + + setupEvents() { + window.addEventListener('resize', event => this.layoutTabs()) + + this.el.addEventListener('dblclick', event => this.addTab()) + + this.el.addEventListener('click', ({target}) => { + if (target.classList.contains('chrome-tab')) { + this.setCurrentTab(target) + } else if (target.classList.contains('chrome-tab-close')) { + this.removeTab(target.parentNode) + } else if (target.classList.contains('chrome-tab-title') || target.classList.contains('chrome-tab-favicon')) { + this.setCurrentTab(target.parentNode) + } + }) + } + + get tabEls() { + return Array.prototype.slice.call(this.el.querySelectorAll('.chrome-tab')) + } + + get tabContentEl() { + return this.el.querySelector('.chrome-tabs-content') + } + + get tabWidth() { + const tabsContentWidth = this.tabContentEl.clientWidth - this.options.tabOverlapDistance + const width = (tabsContentWidth / this.tabEls.length) + this.options.tabOverlapDistance + return Math.max(this.options.minWidth, Math.min(this.options.maxWidth, width)) + } + + get tabEffectiveWidth() { + return this.tabWidth - this.options.tabOverlapDistance + } + + get tabPositions() { + const tabEffectiveWidth = this.tabEffectiveWidth + let left = 0 + let positions = [] + + this.tabEls.forEach((tabEl, i) => { + positions.push(left) + left += tabEffectiveWidth + }) + return positions + } + + layoutTabs() { + const tabWidth = this.tabWidth + + this.cleanUpPreviouslyDraggedTabs() + this.tabEls.forEach((tabEl) => tabEl.style.width = tabWidth + 'px') + requestAnimationFrame(() => { + let styleHTML = '' + this.tabPositions.forEach((left, i) => { + styleHTML += ` + .chrome-tabs[data-chrome-tabs-instance-id="${ this.instanceId }"] .chrome-tab:nth-child(${ i + 1 }) { + transform: translate3d(${ left }px, 0, 0) + } + ` + }) + this.animationStyleEl.innerHTML = styleHTML + }) + } + + fixZIndexes() { + const bottomBarEl = this.el.querySelector('.chrome-tabs-bottom-bar') + const tabEls = this.tabEls + + tabEls.forEach((tabEl, i) => { + let zIndex = tabEls.length - i + + if (tabEl.classList.contains('chrome-tab-current')) { + bottomBarEl.style.zIndex = tabEls.length + 1 + zIndex = tabEls.length + 2 + } + tabEl.style.zIndex = zIndex + }) + } + + createNewTabEl() { + const div = document.createElement('div') + div.innerHTML = tabTemplate + return div.firstElementChild + } + + addTab(tabProperties) { + const tabEl = this.createNewTabEl() + + tabEl.classList.add('chrome-tab-just-added') + setTimeout(() => tabEl.classList.remove('chrome-tab-just-added'), 500) + + tabProperties = Object.assign({}, defaultTapProperties, tabProperties) + this.tabContentEl.appendChild(tabEl) + this.updateTab(tabEl, tabProperties) + this.emit('tabAdd', { tabEl }) + this.setCurrentTab(tabEl) + this.layoutTabs() + this.fixZIndexes() + this.setupDraggabilly() + } + + setCurrentTab(tabEl) { + const currentTab = this.el.querySelector('.chrome-tab-current') + if (currentTab) currentTab.classList.remove('chrome-tab-current') + tabEl.classList.add('chrome-tab-current') + this.fixZIndexes() + this.emit('activeTabChange', { tabEl }) + } + + removeTab(tabEl) { + if (tabEl.classList.contains('chrome-tab-current')) { + if (tabEl.previousElementSibling) { + this.setCurrentTab(tabEl.previousElementSibling) + } else if (tabEl.nextElementSibling) { + this.setCurrentTab(tabEl.nextElementSibling) + } + } + tabEl.parentNode.removeChild(tabEl) + this.emit('tabRemove', { tabEl }) + this.layoutTabs() + this.fixZIndexes() + this.setupDraggabilly() + } + + updateTab(tabEl, tabProperties) { + tabEl.querySelector('.chrome-tab-title').textContent = tabProperties.title + tabEl.querySelector('.chrome-tab-favicon').style.backgroundImage = `url('${tabProperties.favicon}')` + } + + cleanUpPreviouslyDraggedTabs() { + this.tabEls.forEach((tabEl) => tabEl.classList.remove('chrome-tab-just-dragged')) + } + + setupDraggabilly() { + const tabEls = this.tabEls + const tabEffectiveWidth = this.tabEffectiveWidth + const tabPositions = this.tabPositions + + this.draggabillyInstances.forEach(draggabillyInstance => draggabillyInstance.destroy()) + + tabEls.forEach((tabEl, originalIndex) => { + const originalTabPositionX = tabPositions[originalIndex] + const draggabillyInstance = new Draggabilly(tabEl, { + axis: 'x', + containment: this.tabContentEl + }) + + this.draggabillyInstances.push(draggabillyInstance) + + draggabillyInstance.on('dragStart', () => { + this.cleanUpPreviouslyDraggedTabs() + tabEl.classList.add('chrome-tab-currently-dragged') + this.el.classList.add('chrome-tabs-sorting') + this.fixZIndexes() + }) + + draggabillyInstance.on('dragEnd', () => { + const finalTranslateX = parseFloat(tabEl.style.left, 10) + tabEl.style.transform = `translate3d(0, 0, 0)` + + // Animate dragged tab back into its place + requestAnimationFrame(() => { + tabEl.style.left = '0' + tabEl.style.transform = `translate3d(${ finalTranslateX }px, 0, 0)` + + requestAnimationFrame(() => { + tabEl.classList.remove('chrome-tab-currently-dragged') + this.el.classList.remove('chrome-tabs-sorting') + + this.setCurrentTab(tabEl) + tabEl.classList.add('chrome-tab-just-dragged') + + requestAnimationFrame(() => { + tabEl.style.transform = '' + + this.setupDraggabilly() + }) + }) + }) + }) + + draggabillyInstance.on('dragMove', (event, pointer, moveVector) => { + // Current index be computed within the event since it can change during the dragMove + const tabEls = this.tabEls + const currentIndex = tabEls.indexOf(tabEl) + + const currentTabPositionX = originalTabPositionX + moveVector.x + const destinationIndex = Math.max(0, Math.min(tabEls.length, Math.floor((currentTabPositionX + (tabEffectiveWidth / 2)) / tabEffectiveWidth))) + + if (currentIndex !== destinationIndex) { + this.animateTabMove(tabEl, currentIndex, destinationIndex) + } + }) + }) + } + + animateTabMove(tabEl, originIndex, destinationIndex) { + if (destinationIndex < originIndex) { + tabEl.parentNode.insertBefore(tabEl, this.tabEls[destinationIndex]) + } else { + tabEl.parentNode.insertBefore(tabEl, this.tabEls[destinationIndex + 1]) + } + } + } + + window.ChromeTabs = ChromeTabs + })() \ No newline at end of file diff --git a/influxerp_com/public/js/draggabilly.js b/influxerp_com/public/js/draggabilly.js new file mode 100644 index 0000000..5a796b0 --- /dev/null +++ b/influxerp_com/public/js/draggabilly.js @@ -0,0 +1,8 @@ +/*! + * Draggabilly PACKAGED v2.1.1 + * Make that shiz draggable + * http://draggabilly.desandro.com + * MIT license + */ + +!function(t,i){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(e){i(t,e)}):"object"==typeof module&&module.exports?module.exports=i(t,require("jquery")):t.jQueryBridget=i(t,t.jQuery)}(window,function(t,i){function e(e,r,a){function d(t,i,n){var o,r="$()."+e+'("'+i+'")';return t.each(function(t,d){var h=a.data(d,e);if(!h)return void s(e+" not initialized. Cannot call methods, i.e. "+r);var u=h[i];if(!u||"_"==i.charAt(0))return void s(r+" is not a valid method");var c=u.apply(h,n);o=void 0===o?c:o}),void 0!==o?o:t}function h(t,i){t.each(function(t,n){var o=a.data(n,e);o?(o.option(i),o._init()):(o=new r(n,i),a.data(n,e,o))})}a=a||i||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[e]=function(t){if("string"==typeof t){var i=o.call(arguments,1);return d(this,t,i)}return h(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=e)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(i||t.jQuery),e}),function(t,i){"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return i()}):"object"==typeof module&&module.exports?module.exports=i():t.getSize=i()}(window,function(){function t(t){var i=parseFloat(t),e=-1==t.indexOf("%")&&!isNaN(i);return e&&i}function i(){}function e(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},i=0;h>i;i++){var e=d[i];t[e]=0}return t}function n(t){var i=getComputedStyle(t);return i||a("Style returned "+i+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),i}function o(){if(!u){u=!0;var i=document.createElement("div");i.style.width="200px",i.style.padding="1px 2px 3px 4px",i.style.borderStyle="solid",i.style.borderWidth="1px 2px 3px 4px",i.style.boxSizing="border-box";var e=document.body||document.documentElement;e.appendChild(i);var o=n(i);r.isBoxSizeOuter=s=200==t(o.width),e.removeChild(i)}}function r(i){if(o(),"string"==typeof i&&(i=document.querySelector(i)),i&&"object"==typeof i&&i.nodeType){var r=n(i);if("none"==r.display)return e();var a={};a.width=i.offsetWidth,a.height=i.offsetHeight;for(var u=a.isBorderBox="border-box"==r.boxSizing,c=0;h>c;c++){var p=d[c],f=r[p],g=parseFloat(f);a[p]=isNaN(g)?0:g}var l=a.paddingLeft+a.paddingRight,v=a.paddingTop+a.paddingBottom,m=a.marginLeft+a.marginRight,y=a.marginTop+a.marginBottom,b=a.borderLeftWidth+a.borderRightWidth,P=a.borderTopWidth+a.borderBottomWidth,E=u&&s,_=t(r.width);_!==!1&&(a.width=_+(E?0:l+b));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:v+P)),a.innerWidth=a.width-(l+b),a.innerHeight=a.height-(v+P),a.outerWidth=a.width+m,a.outerHeight=a.height+y,a}}var s,a="undefined"==typeof console?i:function(t){console.error(t)},d=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=d.length,u=!1;return r}),function(t,i){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",i):"object"==typeof module&&module.exports?module.exports=i():t.EvEmitter=i()}("undefined"!=typeof window?window:this,function(){function t(){}var i=t.prototype;return i.on=function(t,i){if(t&&i){var e=this._events=this._events||{},n=e[t]=e[t]||[];return-1==n.indexOf(i)&&n.push(i),this}},i.once=function(t,i){if(t&&i){this.on(t,i);var e=this._onceEvents=this._onceEvents||{},n=e[t]=e[t]||{};return n[i]=!0,this}},i.off=function(t,i){var e=this._events&&this._events[t];if(e&&e.length){var n=e.indexOf(i);return-1!=n&&e.splice(n,1),this}},i.emitEvent=function(t,i){var e=this._events&&this._events[t];if(e&&e.length){var n=0,o=e[n];i=i||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,i),n+=s?0:1,o=e[n]}return this}},t}),function(t,i){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(e){return i(t,e)}):"object"==typeof module&&module.exports?module.exports=i(t,require("ev-emitter")):t.Unipointer=i(t,t.EvEmitter)}(window,function(t,i){function e(){}function n(){}var o=n.prototype=Object.create(i.prototype);o.bindStartEvent=function(t){this._bindStartEvent(t,!0)},o.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},o._bindStartEvent=function(i,e){e=void 0===e?!0:!!e;var n=e?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?i[n]("pointerdown",this):t.navigator.msPointerEnabled?i[n]("MSPointerDown",this):(i[n]("mousedown",this),i[n]("touchstart",this))},o.handleEvent=function(t){var i="on"+t.type;this[i]&&this[i](t)},o.getTouch=function(t){for(var i=0;i3||Math.abs(t.y)>3},o.pointerUp=function(t,i){this.emitEvent("pointerUp",[t,i]),this._dragPointerUp(t,i)},o._dragPointerUp=function(t,i){this.isDragging?this._dragEnd(t,i):this._staticClick(t,i)},o._dragStart=function(t,e){this.isDragging=!0,this.dragStartPoint=i.getPointerPoint(e),this.isPreventingClicks=!0,this.dragStart(t,e)},o.dragStart=function(t,i){this.emitEvent("dragStart",[t,i])},o._dragMove=function(t,i,e){this.isDragging&&this.dragMove(t,i,e)},o.dragMove=function(t,i,e){t.preventDefault(),this.emitEvent("dragMove",[t,i,e])},o._dragEnd=function(t,i){this.isDragging=!1,setTimeout(function(){delete this.isPreventingClicks}.bind(this)),this.dragEnd(t,i)},o.dragEnd=function(t,i){this.emitEvent("dragEnd",[t,i])},o.onclick=function(t){this.isPreventingClicks&&t.preventDefault()},o._staticClick=function(t,i){if(!this.isIgnoringMouseUp||"mouseup"!=t.type){var e=t.target.nodeName;("INPUT"==e||"TEXTAREA"==e)&&t.target.focus(),this.staticClick(t,i),"mouseup"!=t.type&&(this.isIgnoringMouseUp=!0,setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400))}},o.staticClick=function(t,i){this.emitEvent("staticClick",[t,i])},n.getPointerPoint=i.getPointerPoint,n}),function(t,i){"function"==typeof define&&define.amd?define(["get-size/get-size","unidragger/unidragger"],function(e,n){return i(t,e,n)}):"object"==typeof module&&module.exports?module.exports=i(t,require("get-size"),require("unidragger")):t.Draggabilly=i(t,t.getSize,t.Unidragger)}(window,function(t,i,e){function n(){}function o(t,i){for(var e in i)t[e]=i[e];return t}function r(t){return t instanceof HTMLElement}function s(t,i){this.element="string"==typeof t?d.querySelector(t):t,f&&(this.$element=f(this.element)),this.options=o({},this.constructor.defaults),this.option(i),this._create()}function a(t,i,e){return e=e||"round",i?Math[e](t/i)*i:t}var d=t.document,h=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame,u=0;h||(h=function(t){var i=(new Date).getTime(),e=Math.max(0,16-(i-u)),n=setTimeout(t,e);return u=i+e,n});var c=d.documentElement,p="string"==typeof c.style.transform?"transform":"WebkitTransform",f=t.jQuery,g=s.prototype=Object.create(e.prototype);s.defaults={},g.option=function(t){o(this.options,t)};var l={relative:!0,absolute:!0,fixed:!0};return g._create=function(){this.position={},this._getPosition(),this.startPoint={x:0,y:0},this.dragPoint={x:0,y:0},this.startPosition=o({},this.position);var t=getComputedStyle(this.element);l[t.position]||(this.element.style.position="relative"),this.enable(),this.setHandles()},g.setHandles=function(){this.handles=this.options.handle?this.element.querySelectorAll(this.options.handle):[this.element],this.bindHandles()},g.dispatchEvent=function(i,e,n){var o=[e].concat(n);this.emitEvent(i,o);var r=t.jQuery;if(r&&this.$element)if(e){var s=r.Event(e);s.type=i,this.$element.trigger(s,n)}else this.$element.trigger(i,n)},g._getPosition=function(){var t=getComputedStyle(this.element),i=this._getPositionCoord(t.left,"width"),e=this._getPositionCoord(t.top,"height");this.position.x=isNaN(i)?0:i,this.position.y=isNaN(e)?0:e,this._addTransformPosition(t)},g._getPositionCoord=function(t,e){if(-1!=t.indexOf("%")){var n=i(this.element.parentNode);return n?parseFloat(t)/100*n[e]:0}return parseInt(t,10)},g._addTransformPosition=function(t){var i=t[p];if(0===i.indexOf("matrix")){var e=i.split(","),n=0===i.indexOf("matrix3d")?12:4,o=parseInt(e[n],10),r=parseInt(e[n+1],10);this.position.x+=o,this.position.y+=r}},g.pointerDown=function(t,i){this._dragPointerDown(t,i);var e=d.activeElement;e&&e.blur&&e!=d.body&&e.blur(),this._bindPostStartEvents(t),this.element.classList.add("is-pointer-down"),this.dispatchEvent("pointerDown",t,[i])},g.pointerMove=function(t,i){var e=this._dragPointerMove(t,i);this.dispatchEvent("pointerMove",t,[i,e]),this._dragMove(t,i,e)},g.dragStart=function(t,i){this.isEnabled&&(this._getPosition(),this.measureContainment(),this.startPosition.x=this.position.x,this.startPosition.y=this.position.y,this.setLeftTop(),this.dragPoint.x=0,this.dragPoint.y=0,this.element.classList.add("is-dragging"),this.dispatchEvent("dragStart",t,[i]),this.animate())},g.measureContainment=function(){var t=this.options.containment;if(t){var e=r(t)?t:"string"==typeof t?d.querySelector(t):this.element.parentNode,n=i(this.element),o=i(e),s=this.element.getBoundingClientRect(),a=e.getBoundingClientRect(),h=o.borderLeftWidth+o.borderRightWidth,u=o.borderTopWidth+o.borderBottomWidth,c=this.relativeStartPosition={x:s.left-(a.left+o.borderLeftWidth),y:s.top-(a.top+o.borderTopWidth)};this.containSize={width:o.width-h-c.x-n.width,height:o.height-u-c.y-n.height}}},g.dragMove=function(t,i,e){if(this.isEnabled){var n=e.x,o=e.y,r=this.options.grid,s=r&&r[0],d=r&&r[1];n=a(n,s),o=a(o,d),n=this.containDrag("x",n,s),o=this.containDrag("y",o,d),n="y"==this.options.axis?0:n,o="x"==this.options.axis?0:o,this.position.x=this.startPosition.x+n,this.position.y=this.startPosition.y+o,this.dragPoint.x=n,this.dragPoint.y=o,this.dispatchEvent("dragMove",t,[i,e])}},g.containDrag=function(t,i,e){if(!this.options.containment)return i;var n="x"==t?"width":"height",o=this.relativeStartPosition[t],r=a(-o,e,"ceil"),s=this.containSize[n];return s=a(s,e,"floor"),Math.min(s,Math.max(r,i))},g.pointerUp=function(t,i){this.element.classList.remove("is-pointer-down"),this.dispatchEvent("pointerUp",t,[i]),this._dragPointerUp(t,i)},g.dragEnd=function(t,i){this.isEnabled&&(p&&(this.element.style[p]="",this.setLeftTop()),this.element.classList.remove("is-dragging"),this.dispatchEvent("dragEnd",t,[i]))},g.animate=function(){if(this.isDragging){this.positionDrag();var t=this;h(function(){t.animate()})}},g.setLeftTop=function(){this.element.style.left=this.position.x+"px",this.element.style.top=this.position.y+"px"},g.positionDrag=function(){this.element.style[p]="translate3d( "+this.dragPoint.x+"px, "+this.dragPoint.y+"px, 0)"},g.staticClick=function(t,i){this.dispatchEvent("staticClick",t,[i])},g.enable=function(){this.isEnabled=!0},g.disable=function(){this.isEnabled=!1,this.isDragging&&this.dragEnd()},g.destroy=function(){this.disable(),this.element.style[p]="",this.element.style.left="",this.element.style.top="",this.element.style.position="",this.unbindHandles(),this.$element&&this.$element.removeData("draggabilly")},g._init=n,f&&f.bridget&&f.bridget("draggabilly",s),s}); \ No newline at end of file diff --git a/influxerp_com/public/js/payment.js b/influxerp_com/public/js/payment.js new file mode 100644 index 0000000..412c395 --- /dev/null +++ b/influxerp_com/public/js/payment.js @@ -0,0 +1,24 @@ +window.pay = { + paypal_button_id: "GCJUKSH7DBJX6", + paypal_url: "https://www.paypal.com/cgi-bin/webscr", + paypal: function(btn) { + var $btn = btn ? $(btn) : $(this); + $(".paypal-form").remove(); + $('').appendTo("body").submit(); + }, + + wire_transfer: function(btn, msg_selector) { + var $btn = btn ? $(btn) : $(this); + var msg = $(msg_selector).html(); + var amount = $(btn).attr("data-amount"); + var msg = '

Amount: ' + amount + '


' + msg; + $('.wire-transfer-dialog').remove(); + frappe.msgprint(msg, "Wire Transfer").addClass("wire-transfer-dialog"); + }, +} \ No newline at end of file diff --git a/influxerp_com/public/js/search_docs.js b/influxerp_com/public/js/search_docs.js new file mode 100644 index 0000000..c90e119 --- /dev/null +++ b/influxerp_com/public/js/search_docs.js @@ -0,0 +1,16 @@ +frappe.ready(() => { + let pathname = window.location.pathname; + if (pathname.startsWith('/docs')) { + let $search = $(''); + $('.page-head .col-sm-12').append($search); + $search.on('keydown', e => { + if (e.key == 'Enter') { + window.location.href = '/search?scope=/docs&q=' + e.target.value; + } + }); + } + + if (pathname.startsWith('/search')) { + $('.page_content').addClass('container'); + } +}); diff --git a/influxerp_com/public/js/signup/pricing.js b/influxerp_com/public/js/signup/pricing.js new file mode 100644 index 0000000..1795808 --- /dev/null +++ b/influxerp_com/public/js/signup/pricing.js @@ -0,0 +1,24 @@ +tippy('.tooltip-element', { + arrow: true, + arrowType: 'round', // or 'sharp' (default) + animation: 'fade', +}); + +frappe.ready(function () { + function set_expiry(key, value, period) { + // convert days to milliseconds, faster than importing external library + period = period * 86400000; + const now = new Date(); + + const value_obj = { + value: value, + expiry: now.getTime() + period, + }; + localStorage.setItem(key, JSON.stringify(value_obj)); + } + + var referral_id = frappe.utils.get_url_arg('referral-id'); + if (referral_id) { + set_expiry('referral_id', referral_id, 30); + } +}); diff --git a/influxerp_com/templates/__init__.py b/influxerp_com/templates/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/templates/generators/__init__.py b/influxerp_com/templates/generators/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/templates/includes/card_grid.html b/influxerp_com/templates/includes/card_grid.html new file mode 100644 index 0000000..7cd6ceb --- /dev/null +++ b/influxerp_com/templates/includes/card_grid.html @@ -0,0 +1,30 @@ +{% macro card_grid(heading, subtitle, features) %} + + {% if heading %} +

{{ heading }}

+ {% endif %} + {% if subtitle %} +

{{ subtitle }}

+ {% endif %} +
+ {% for card in features %} + + {% endfor %} +
+ +{% endmacro %} diff --git a/influxerp_com/templates/includes/domain.html b/influxerp_com/templates/includes/domain.html new file mode 100644 index 0000000..8b259b2 --- /dev/null +++ b/influxerp_com/templates/includes/domain.html @@ -0,0 +1,32 @@ +{% macro domain(domain, title, subtitle, image, features) %} + +
+
+

{{ title }}

+

{{ subtitle }}

+

+ Start Free Trial +

+

Try ERPNext free for 14 days

+
+
+
+
+
+ {% for card in features %} + + {% endfor %} +
+
+
+{% include "influxerp_com/templates/includes/signup_footer.html" %} + + +{% endmacro %} diff --git a/influxerp_com/templates/includes/feature_section.html b/influxerp_com/templates/includes/feature_section.html new file mode 100644 index 0000000..ba07d5a --- /dev/null +++ b/influxerp_com/templates/includes/feature_section.html @@ -0,0 +1,54 @@ +{% macro full_width_feature(heading, subtitle, illustration, know_more) %} + +
+
+
+
+ +
+
+
+
+

{{ heading }}

+

{{ subtitle }}

+ {% if know_more %} + Know More + {% endif %} +
+
+{% endmacro %} + +{% macro full_width_feature_reverse(heading, subtitle, illustration, know_more) %} + +
+
+

{{ heading }}

+

{{ subtitle }}

+ {% if know_more %} + Know More + {% endif %} +
+
+
+
+ +
+
+
+
+{% endmacro %} + + diff --git a/influxerp_com/templates/includes/google_conversion.html b/influxerp_com/templates/includes/google_conversion.html new file mode 100644 index 0000000..caaac38 --- /dev/null +++ b/influxerp_com/templates/includes/google_conversion.html @@ -0,0 +1,46 @@ + + + + + + + diff --git a/influxerp_com/templates/includes/industry_footer.html b/influxerp_com/templates/includes/industry_footer.html new file mode 100644 index 0000000..a03f5af --- /dev/null +++ b/influxerp_com/templates/includes/industry_footer.html @@ -0,0 +1,53 @@ +
+
+

ERPNext Also Includes

+
+
+

Role Based Access

+

Field Level Customization

+

Customized Print

+

Email Integration

+

Report Builder

+

Shared Calendar

+

Customer, Vendor Portal

+

Downloadable Backups

+

Payment Integration

+
+
+

Workflow Engine

+

Custom Fields

+

Exensible Custom Scripts

+

SMS Integration

+

Gantt and Kanban View

+

Email Alerts

+

Finance Analytics

+

Website and Web Forms

+

Mobile App

+
+
+
+
+ +
+
+

Trusted by more than 3000 companies across 150 countries. +
+

+ +

+ Get Started for $10 +

+
+
+ + diff --git a/influxerp_com/templates/includes/macros.html b/influxerp_com/templates/includes/macros.html new file mode 100644 index 0000000..e445d51 --- /dev/null +++ b/influxerp_com/templates/includes/macros.html @@ -0,0 +1,132 @@ +{% macro hero(title, subtitle, image, enable_free_plan) %} +
+
+
+
+

+ {{ title }}

+

+ {{ subtitle }}

+ {% if enable_free_plan %} +

+ + Sign Up — Free for 1 User +

+

+ See plans and pricing +

+ {% else %} +

+ + Start a free 14-day trial +

+ {% endif %} +
+
+ +
+
+
+
+
+
+{% endmacro %} + +{% macro feature(detail) %} +
+
+
+
+

{{ detail.title }}

+

{{ detail.desc }}

+
+
+ erpnext screen +

Screenshot only shows how ERPNext can be used, does not have real data

+
+
+
+
+{% endmacro %} + +{% macro testimonial(name, description, image) %} +
+
+

Trusted by users across 150+ countries

+
+
+

+ {{ description }} +

+ +
+
+

+ +

+

+ {{ name }} +

+
+ +
+

+ Read more reviews... +

+
+
+{% endmacro %} + +{% macro render_plan(plan_name, users, emails, space, price) %} +
+
+
+

$ {{ price }}/year

+

{{ users }} Users

+
+

Emails: {{ emails }}

+

Space: {{ space }} GB

+

Functional Support

+
+ +
+
+
+{% endmacro %} + +{% macro doc_page(title, subtitle, doc, toc_url) %} + + {% from "frappe_theme/templates/includes/docs.html" import cards, hero %} + +
+
+ +

{{ title }}

+

{{ subtitle }}

+ + + +
+
+ + {% for section in doc %} +
+
+

{{ section.title }}

+ {{ cards(section.links)}} +
+

+ View Full Contents +

+
+ {% endfor %} +{% endmacro %} diff --git a/influxerp_com/templates/includes/signup_footer.html b/influxerp_com/templates/includes/signup_footer.html new file mode 100644 index 0000000..30b554b --- /dev/null +++ b/influxerp_com/templates/includes/signup_footer.html @@ -0,0 +1,24 @@ +
+
+

Integrate with your favourite Apps

+

ERPNext has a host of built-in integrations that help your business take-off faster

+ ERPNext Integrations + ERPNext Integrations + + +
+
+
+
+

Loved by Users

+

Used by more than 5000 companies across the world

+ Companies using ERPNext + Companies using ERPNext + +
+
\ No newline at end of file diff --git a/influxerp_com/templates/includes/testimonials_macros.html b/influxerp_com/templates/includes/testimonials_macros.html new file mode 100644 index 0000000..967c863 --- /dev/null +++ b/influxerp_com/templates/includes/testimonials_macros.html @@ -0,0 +1,94 @@ +{% macro testimonials() %} + {% set testimonialsdata = [ + { + "desc":"I’ve been both the system admin, champion, and developer for ERPNext within my organization for almost three years now. We really love the product and it seems to only be getting better every day!", + "customer_img": "/assets/influxerp_com/images/testimonials/alec.jpg", + "customer_name":"Alec Ruiz-Ramon
United States" + }, + { + "desc": "After evaluating a bunch of ERPs including TCS, Tally and many others, I finally found the right ERP for my furniture manufacturing startup. I love using ERPNext and recommend it to any disrete manufacturing company", + "customer_img": "/assets/influxerp_com/images/testimonials/sonal.jpg", + "customer_name":"Sonal Ramnathkar
Pink Guppy Kids, India" + }, + { + "desc": "For many years we have searched for a solution that aligns with our market strategy and that provides the essential building blocks for SMBs. Our research led us to your company and your ERP solution ERPNext. Which we think has the best integrated solution with the latest technology such as cloud based, mobile ready among others", + "customer_img": "/assets/influxerp_com/images/testimonials/sergio.jpg", + "customer_name":"Sergio Alcántara
Mexico" + }, + { + "desc": "I am seriously very impressed with your people and your cause. WELL DONE! The world needs more people like you!", + "customer_img": "/assets/influxerp_com/images/testimonials/chris-koh.jpg", + "customer_name":"Chris Koh
Malasiya" + }, + { + "desc":"ERPNext has created a huge impact in our business here at Boa Casa without any doubt. I am sure that ERPNext, with the support of its strong community and one of the best customer support and development teams, will be a blessing to SMB enterprises globally.", + "customer_img": "/assets/influxerp_com/images/testimonials/aditya.jpg", + "customer_name":"Aditya Iyer
Boa Casa, India" + }, + { + "desc": "The reason we are using ERPNext is becauase it is feasible option for business of our size and it's scalable & grow with our business & also gives stability to customize it to our needs", + "customer_img": "/assets/influxerp_com/images/testimonials/hqdefault.jpg", + "customer_name":"Maya Krumins
Digitales, Australia" + }, + { + "desc": "Many ERP software have $$$ attached to them, and I too frequently see failed deployment because of that factor. Being open source and fully customizable, ERPNext position itself in a different league and, in my opinion, toward the future.", + "customer_img": "/assets/influxerp_com/images/testimonials/bernard.jpg", + "customer_name":"Bernard Lefebvre
Aptitude Tech, Canada" + }, + { + "desc":"I did an extensive search for a suitable package and after several months settled on ERPNext. I am very happy with the package, the subscription program and especially with the support team. +You guys are great. I say this with several years of personal experience in the core team of the Joomla! open source project, so I know what I see 😊", + "customer_img": "/assets/influxerp_com/images/testimonials/david_gale.jpg", + "customer_name":"David Gal
Netvision, Israel" + }, + { + "desc": "The UI and UX are one of the most fluid and highly useable interfaces I have ever seen in an ERP. You make accounting fun! Keep up the amazing work.", + "customer_img": "/assets/influxerp_com/images/testimonials/gladwynlewis.jpg", + "customer_name":"Gladwyn Lewis
ERP Consultant, UAE" + }, + { + "desc": "ERPNext is a great project that competes with the major ERP systems worldwide, I am really proud of your product ERPNext and have an excellent success story with its implementation in an industrial company in Egypt which has had two failed ERP implmentations before. I have a previous experience with Oracle E-Business and Microsoft Dynamics AX, but really I found ERPNext much more better than those ERPs", + "customer_img": "/assets/influxerp_com/images/stories/hisham_farid.jpg", + "customer_name":"Hisham Farid
Direction, Egypt" + }, + { + "desc": "After trying so many ERPs, what I liked is the completeness and ease of use of ERPNext. At Alcon, people were used to working on traditional excel or word files. It was difficult to get everybody to use ERPNext. However, they came around when they saw a user-friendly interface.", + "customer_img": "/assets/influxerp_com/images/testimonials/zel-ortiz.png", + "customer_name":"Zel Ortiz
Alcon Phils, Philippines" + }, + { + "desc": "We are a Educational products company, I signed up for a trial of ERP next and found it surprisingly powerful and elegant. Bravo, fellow startup!", + "customer_img": "/assets/influxerp_com/images/testimonials/manoj.png", + "customer_name":"Manoj Thandassery
Curiociti Learning, India" + }, + { + "desc": "First of all I want to say thanks for producing an ERP software that actually made me say wow! a couple of times already.", + "customer_img": "/assets/influxerp_com/images/testimonials/wolf-dieter.jpg", + "customer_name":"Wolf-Dieter Grabner
Germany" + + } + + ] %} + + {%- for testimonial in testimonialsdata -%} +
+
+
+

+ {{ testimonial.desc }} +

+

+ {{ testimonial.customer_name }} +

+ +
+
+

+ +

+
+
+
+ {%- endfor %} + +{% endmacro %} \ No newline at end of file diff --git a/influxerp_com/templates/landing-page.html b/influxerp_com/templates/landing-page.html new file mode 100644 index 0000000..c7d6137 --- /dev/null +++ b/influxerp_com/templates/landing-page.html @@ -0,0 +1,12 @@ +{% extends "templates/base.html" %} + +{% block content %} +
+
+

{{ heading }}

+

{{ description }}

+ {{ hero_alt }} +
+
+ +{% endblock %} \ No newline at end of file diff --git a/influxerp_com/templates/pages/__init__.py b/influxerp_com/templates/pages/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/utils.py b/influxerp_com/utils.py new file mode 100644 index 0000000..cf3cd25 --- /dev/null +++ b/influxerp_com/utils.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals +import frappe +import requests + +country_info = {} + +@frappe.whitelist(allow_guest=True) +def get_country(fields=None): + global country_info + ip = frappe.local.request_ip + + if not ip in country_info: + fields = ['countryCode', 'country', 'regionName', 'city'] + res = requests.get('https://pro.ip-api.com/json/{ip}?key={key}&fields={fields}'.format( + ip=ip, key=frappe.conf.get('ip-api-key'), fields=','.join(fields))) + + try: + country_info[ip] = res.json() + + except Exception: + country_info[ip] = {} + + return country_info[ip] + + +def get_rounded_total(amount, pricing_multiplier): + ''' Python - round up to the nearest ten ''' + + if pricing_multiplier != 1: + amount = amount * pricing_multiplier + return int(round(amount / 10.0)) * 10 + else: + return amount diff --git a/influxerp_com/www/__init__.py b/influxerp_com/www/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/about.html b/influxerp_com/www/about.html new file mode 100644 index 0000000..15cb6a2 --- /dev/null +++ b/influxerp_com/www/about.html @@ -0,0 +1,43 @@ +{% extends "templates/base.html" %} +{% block title %}World's Best Open Source ERP{% endblock %} +{% block content %} + +
+
+

World's Top Rated Open Source ERP

+

Rated by Gartner published "ERP Frontrunners"

+

+ +
+
+
+
+

Why we started InfluxERP?

+

+ InfluxERP started as a solution to a problem that our founder, Rushabh Mehta, faced when + he wanted to implement an ERP system for his family business. While building InfluxERP, we decided + that building it with a community is a far better way of making software in the 21st century than making it alone. +
Read the full story. +

+
+
+
+
+

Powered By InfluxFramework

+

InfluxERP is brought to you by InfluxFramework Technologies. + We are a company that is dedicated to help customers manage and grow their businesses and + make the full use of InfluxERP.

+ + +
+
+ +
+{% include "influxerp_com/templates/includes/signup_footer.html" %} + + +{% endblock %} diff --git a/influxerp_com/www/agriculture.html b/influxerp_com/www/agriculture.html new file mode 100644 index 0000000..00a4230 --- /dev/null +++ b/influxerp_com/www/agriculture.html @@ -0,0 +1,51 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Agriculture{% endblock %} + +{% block content %} + +{{ domain( + "Agriculture", + "InfluxERP for Agriculture", + "InfluxERP Agriculture module helps you manage your land, crop cycles, track soil composition and diseases.", + "agriculture.jpg", + [ + { + "title": "Crop Cycle", + "content": "Plan your crop cycles with standard processes linked to a crop and keep track of all tasks.", + "path": '/docs/user/manual/en/agriculture/crop_cycle' + }, + { + "title": "Crop Management", + "content": "The Crop master helps you keep plans and processes linked to a crop and track its history.", + 'path': '/docs/user/manual/en/agriculture/crop' + }, + { + "title": "Land Management", + "content": "Geo-tag all your properties and map them in a hierarchical model.", + 'path': '/docs/user/manual/en/agriculture/land_unit' + }, + { + "title": "Disease Management", + "content": "Keep a track of crop diseases with treatements and keep track of actions taken.", + 'path': '/docs/user/manual/en/agriculture/disease' + }, + { + "title": "Inventory", + "content": "InfluxERP stock module will help you manage inventory and procurement across warehouses.", + 'path': '/docs/user/manual/en/stock' + }, + { + "title": "Billing and Payments", + "content": "Track all things financial, including billings and payments with the InfluxERP accounts module.", + 'path': '/docs/user/manual/en/accounts' + }, + ] + ) +}} + +{% endblock %} + + diff --git a/influxerp_com/www/compare.html b/influxerp_com/www/compare.html new file mode 100644 index 0000000..1add214 --- /dev/null +++ b/influxerp_com/www/compare.html @@ -0,0 +1,152 @@ +
+

Compare InfluxERP

+

The World's Most Affordable Cloud ERP

+
+ + + + + + + + + +
YesNoAdd-on
+

Broad feature and price comparison with some of the other cloud ERP / CRM applications.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProductAccountingInventorySalesMfg.Open SourcePricing +
(/user/month)
Zoho CRM$12
Freshbooks$15
Xero$30
Odoo$80
Work etc$40
Sugar CRM$45
Sales Force$65
Bright Pearl$100
Netsuite$100
SAP ByDesign$125
InfluxERP + $12.5* +
+
+

* InfluxERP price is based on annual plans.

+
+
+ Disclaimers: +
    +
  • Prices may be dated, please email us at hello@influxerp.com to find the latest pricing info.
  • +
  • Yellow represents that features may be available via add-ons or plugins. Mostly at extra cost.
  • +
  • This is a broad comparison and does not consider the depth of each feature or its fitness or applicability.
  • +
+
+

+
+ Pricing +

+ +
diff --git a/influxerp_com/www/conf/2014/__init__.py b/influxerp_com/www/conf/2014/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2014/index.md b/influxerp_com/www/conf/2014/index.md new file mode 100644 index 0000000..1a80173 --- /dev/null +++ b/influxerp_com/www/conf/2014/index.md @@ -0,0 +1,32 @@ +# Conference 2014 + +The first ever InfluxERP conference was a super event and we thank all attendees for their enthusiastic participation. Special thanks to all users who took their time to share their journeys with the rest of us. + +--- + +### Relive the Conference + +Watch all the conference presentations from the InfluxERP Team and the users. There were a bunch of exciting and entertaining presentations that you don't want to miss. + +Watch the Videos + +--- + +#### [Conference Report by Vijay Kumar](http://www.bravegnu.org/blog/influxerp-conf-2014.html) + +InfluxERP is an opensource ERP software written in Python, by a team of developers from Mumbai. The InfluxERP team recently organized a conference, and my experiences at the conference, is covered in this article. + +[Report Link](http://www.bravegnu.org/blog/influxerp-conf-2014.html) + +--- + +### Pictures! + + + +Thanks to [@paraskuhad](https://twitter.com/paraskuhad) who took time out to take awesome pictures for the conference. + +--- + +[Contact us for any queries](https://about.influxframework.com/#contact) + diff --git a/influxerp_com/www/conf/2014/index.txt b/influxerp_com/www/conf/2014/index.txt new file mode 100644 index 0000000..e23ae7e --- /dev/null +++ b/influxerp_com/www/conf/2014/index.txt @@ -0,0 +1,4 @@ +index +videos +pictures +venue diff --git a/influxerp_com/www/conf/2014/pictures.md b/influxerp_com/www/conf/2014/pictures.md new file mode 100644 index 0000000..8bf3422 --- /dev/null +++ b/influxerp_com/www/conf/2014/pictures.md @@ -0,0 +1,5 @@ +# Pictures + + + +Thanks to [@paraskuhad](https://twitter.com/paraskuhad) diff --git a/influxerp_com/www/conf/2014/venue.md b/influxerp_com/www/conf/2014/venue.md new file mode 100644 index 0000000..4e7a26c --- /dev/null +++ b/influxerp_com/www/conf/2014/venue.md @@ -0,0 +1,48 @@ +# Venue + + + +The InfluxERP Conference will be held in the quaint and quirky neighbourhood in Mumbai called Matunga. Matunga is the hub of the South Indian community in Mumbai and is famous for its Cafes, Book Stalls, Temples and Cultural Shops. Its down-to-earth, quality-and-consistency and value-for-money ethic is exactly what InfluxERP is all about. + +Matunga was also one of the first planned residential parts of the city and is home to some [beautiful Art Deco buildings](http://thatandthisinmumbai.wordpress.com/2014/05/29/neighbourhoods-of-mumbai-1-matunga/). + +--- + +### Cafes + +Popularly known as "Udupi" Cafes, Matunga is dotted with dozens of small eateries that serve high quality South Indian snacks such as dosa and idli along with the famous filter coffee. These cafes pride in providing consistently high quality food at very affordable prices. So instead of paying high money to five-star hotels, we decided that we need to here + +Here are some beautiful pics from Flickr (Creative Commons) to whet your appetite. + +See you at the conference! + +--- + +

+

+

+

+

+ +--- + +### Address + +**The Mysore Association Auditorium**
+Address: 393, Bhau Daji Road,
+Matunga (East),
+Mumbai,
+Maharashtra 400019
+Phone:022 2402 4647
+ +[ Google Maps](https://www.google.co.in/maps/place/Mysore+Association+Auditorium/@19.028398,72.85494,17z/data=!4m2!3m1!1s0x0:0xd31576f646dcbc86) + +--- + +Image Credits + +- [https://www.flickr.com/photos/gargi/5975218870/in/photostream/](https://www.flickr.com/photos/gargi/5975218870/in/photostream) +- [https://www.flickr.com/photos/abhijit/2190206311](https://www.flickr.com/photos/abhijit/2190206311) +- [https://www.flickr.com/photos/shande/3530071157](https://www.flickr.com/photos/shande/3530071157) +- [https://www.flickr.com/photos/premshree/4956514848](https://www.flickr.com/photos/premshree/4956514848) +- [https://www.flickr.com/photos/tenthousandsouls/8856628258](https://www.flickr.com/photos/tenthousandsouls/8856628258) diff --git a/influxerp_com/www/conf/2014/videos/__init__.py b/influxerp_com/www/conf/2014/videos/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2014/videos/aditya-duggal.md b/influxerp_com/www/conf/2014/videos/aditya-duggal.md new file mode 100644 index 0000000..343bab7 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/aditya-duggal.md @@ -0,0 +1,5 @@ +Early InfluxERP user and community member Aditya Duggal walks us through his journey evaluating various ERP softwares and finally getting it right with InfluxERP. He also explains that he did a phase wise implementation instead of a big bang approach, going in the order of Sales, Inventory, Accounting + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/anand-doshi.md b/influxerp_com/www/conf/2014/videos/anand-doshi.md new file mode 100644 index 0000000..f1ed850 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/anand-doshi.md @@ -0,0 +1,5 @@ +Anand Doshi walks us through some of the highlights of InfluxERP Version 4 including the new UI, introduction of InfluxFramework Framework and the plugin / app architecture. + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/deepak-gupta.md b/influxerp_com/www/conf/2014/videos/deepak-gupta.md new file mode 100644 index 0000000..e164128 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/deepak-gupta.md @@ -0,0 +1,5 @@ +Bullows Paint Equipment is a 50 year old manufacturing company that implemented InfluxERP in 2010. Finance Controller and Charted Accountant Deepak Gupta shares his valuable insights on how Bullows moved from legacy FoxPro, evaluated SAP and many others and finally chose Open Source InfluxERP + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/global-community.md b/influxerp_com/www/conf/2014/videos/global-community.md new file mode 100644 index 0000000..144c0fb --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/global-community.md @@ -0,0 +1,3 @@ +InfluxERP Users from across the globe took time to say hello and share their experiences with InfluxERP for the 2014 Conference. + + diff --git a/influxerp_com/www/conf/2014/videos/index.html b/influxerp_com/www/conf/2014/videos/index.html new file mode 100644 index 0000000..b14aa9f --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/index.html @@ -0,0 +1,93 @@ +{% set influxerp = [{ + "label": "Rushabh Mehta", + "name": "rushabh-mehta", + "text": "InfluxERP founder, Rushabh Mehta introduces InfluxERP explains the key themes that drives InfluxERP as a product - InfluxERP is Open, Mobile and Connected."}, + { + "label": "Nabin Hait", + "name": "nabin-hait", + "text": "InfluxERP Core Developer, Nabin Hait shares the journey of InfluxERP from a developer of custom software to an open source product company. Nabin covers the major strategic and architectural changes in InfluxERP as it has evolved into a modern web application." + }, + { + "label": "Anand Doshi", + "name": "anand-doshi", + "text": "InfluxERP Core Developer, Anand Doshi walks us through some of the highlights of InfluxERP Version 4 including the new UI, introduction of InfluxFramework Framework and the plugin / app architecture." + }, + { + "label": "Umair Sayyed", + "name": "umair-sayyed", + "text": "InfluxERP Support Analyst Umair Sayyed explains how InfluxERP uses InfluxERP to manage its own day to day operations and cloud services. Covers accounting, sales, support, HR, website and custom apps." + }, + ] %} + +{% set users = [{ + "label": "Aditya Duggal", + "name": "aditya-duggal", + "text": "Early InfluxERP user and community member Aditya Duggal walks us through his journey evaluating various ERP softwares and finally getting it right with InfluxERP. He also explains that he did a phase wise implementation instead of a big bang approach, going in the order of Sales, Inventory, Accounting."}, + { + "label": "Sonal Ramnathkar", + "name": "sonal-ramnathkar", + "text": "After evaluating a bunch of ERPs including TCS, Tally and many others, Sonal Ramnathkar finally found the right ERP for her furniture manufacturing startup. Sonal shares why she loves using InfluxERP and why she would recommend it to any disrete manufacturing company." + }, + { + "label": "Deepak Gupta", + "name": "deepak-gupta", + "text": "Bullows Paint Equipment is a 50 year old manufacturing company that implemented InfluxERP in 2010. Finance Controller and Charted Accountant Deepak Gupta shares his valuable insights on how Bullows moved from legacy FoxPro, evaluated SAP and many others and finally chose Open Source InfluxERP." + }, + { + "label": "Mahesh Malani", + "name": "mahesh-malani", + "text": "Entrepreneur and engineer Mahesh Malani, the founder of Mahesh Engineering in Kolhapur shares his journey in getting his business in order using accounting and inventory systems. After many different attempts, he got his match in InfluxERP." + }, + { + "label": "Tarun Gupta", + "name": "tarun-gupta", + "text": "When Tarun Gupta's security services startup Neural Integrated Services started growing, his ERP could not keep pace and was full of bugs in spite of spending a lot of money. Thats when Tarun decided he wanted to move to something better and discovered InfluxERP." + }, + { + "label": "Prashant Thakkar", + "name": "prashant-thakkar", + "text": "Second Generation Owner Prashant Thakkar of Mukund / Magnum shares how he pushed his organization to implement InfluxERP and his frustrations with other ERP vendors." + }, +] %} + +{% set community = [{ + "label": "Global Community", + "name": "global-community", + "text": "InfluxERP Users from across the globe took time to say hello and share their experiences with InfluxERP for the 2014 Conference."}, +] %} + +{%- macro videohtml(l) -%} +{%- for v in l -%} +
+
+
+ + + +
+
+

{{ v.label }}

+ {{ v.text }} +
+
+
+{%- endfor -%} +{%- endmacro -%} + +

Videos

+ +
+

Team Videos

+ {{ videohtml(influxerp) }} +
+ +
+

User Videos

+ {{ videohtml(users) }} +
+ +
+

Global Community

+ {{ videohtml(community) }} +
+ diff --git a/influxerp_com/www/conf/2014/videos/index.txt b/influxerp_com/www/conf/2014/videos/index.txt new file mode 100644 index 0000000..099a68c --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/index.txt @@ -0,0 +1,11 @@ +rushabh-mehta +nabin-hait +anand-doshi +umair-sayyed +aditya-duggal +sonal-ramnathkar +deepak-gupta +mahesh-malani +tarun-gupta +prashant-thakkar +global-community diff --git a/influxerp_com/www/conf/2014/videos/mahesh-malani.md b/influxerp_com/www/conf/2014/videos/mahesh-malani.md new file mode 100644 index 0000000..011cd42 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/mahesh-malani.md @@ -0,0 +1,6 @@ +Entrepreneur and engineer Mahesh Malani, the founder of Mahesh Engineering in Kolhapur shares his journey in getting his business in order using accounting and inventory systems. After many different attempts, he got his match in InfluxERP. + + + +{next} + diff --git a/influxerp_com/www/conf/2014/videos/nabin-hait.md b/influxerp_com/www/conf/2014/videos/nabin-hait.md new file mode 100644 index 0000000..eb0d470 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/nabin-hait.md @@ -0,0 +1,5 @@ +InfluxERP Core Developer Nabin Hait shares the journey of InfluxERP from a developer of custom software to an open source product company. Nabin covers the major strategic and architectural changes in InfluxERP as it has evolved into a modern web application + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/prashant-thakkar.md b/influxerp_com/www/conf/2014/videos/prashant-thakkar.md new file mode 100644 index 0000000..77b4c56 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/prashant-thakkar.md @@ -0,0 +1,5 @@ +Second Generation Owner Prashant Thakkar of Mukund / Magnum shares how he pushed his organization to implement InfluxERP and his frustrations with other ERP vendors. + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/rushabh-mehta.md b/influxerp_com/www/conf/2014/videos/rushabh-mehta.md new file mode 100644 index 0000000..1884a02 --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/rushabh-mehta.md @@ -0,0 +1,7 @@ +# Rushabh Mehta + +InfluxERP founder, Rushabh Mehta introduces InfluxERP explains the key themes that drives InfluxERP as a product - InfluxERP is Open, Mobile and Connected. + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/sonal-ramnathkar.md b/influxerp_com/www/conf/2014/videos/sonal-ramnathkar.md new file mode 100644 index 0000000..d9aff7a --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/sonal-ramnathkar.md @@ -0,0 +1,5 @@ +After evaluating a bunch of ERPs including TCS, Tally and many others, Sonal Ramnathkar finally found the right ERP for her furniture manufacturing startup. Sonal shares why she loves using InfluxERP and why she would recommend it to any disrete manufacturing company. + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/tarun-gupta.md b/influxerp_com/www/conf/2014/videos/tarun-gupta.md new file mode 100644 index 0000000..f32abbe --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/tarun-gupta.md @@ -0,0 +1,5 @@ +When Tarun Gupta's security services startup Neural Integrated Services started growing, his ERP could not keep pace and was full of bugs in spite of spending a lot of money. Thats when Tarun decided he wanted to move to something better and discovered InfluxERP. + + + +{next} diff --git a/influxerp_com/www/conf/2014/videos/umair-sayyed.md b/influxerp_com/www/conf/2014/videos/umair-sayyed.md new file mode 100644 index 0000000..6aeb69a --- /dev/null +++ b/influxerp_com/www/conf/2014/videos/umair-sayyed.md @@ -0,0 +1,5 @@ +InfluxERP Support Analyst Umair Sayyed explains how InfluxERP uses InfluxERP to manage its own day to day operations and cloud services. Covers accounting, sales, support, HR, website and custom apps. + + + +{next} diff --git a/influxerp_com/www/conf/2015/__init__.py b/influxerp_com/www/conf/2015/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2015/index.css b/influxerp_com/www/conf/2015/index.css new file mode 100644 index 0000000..3124e49 --- /dev/null +++ b/influxerp_com/www/conf/2015/index.css @@ -0,0 +1,169 @@ +header, footer { + display: none; +} + +h1 { + line-height:1.2em; +} + +.conf-2015-hero { + background: linear-gradient(0deg, #3B3B80, #5E5FBE); +} + +.conf-2015-hero .hero { + padding: 90px 0; +} + +.conf-2015-hero .erp-hero { + width: 677px; + margin-top: -4em; + margin-bottom: -8em; +} + +.conf-2015-hero .hero-content h1.influxerp-conference { + margin-top: -36px; + margin-bottom: 5px; + font-size: 2.34em; + line-height:1em; + text-shadow: 0px 2px 2px rgba(1,2,2,0.1); +} + +.conf-2015-hero .hero-date-location { + font-size: 0.9em; + letter-spacing: 0.07em; +} + +.conf-2015-hero .hero-content h1 { + font-size: 1.833em; + line-height:1.2em; +} + +.conf-2015-hero .hero-content p { + font-weight: 200; +} + +.conf-2015-hero .hero-content p.sub-head { + margin-top: 20px; + max-width: 800px; + font-size: 1.33em; + line-height: 1.35em; +} + +.conf-2015-hero .hero-content .button { + margin-top:30px; + font-size: 1.33em; +} + +.who-should-attend-image { + width:330px; +} + +.white { + color: white; +} + +.brand-muted { + color: #b8b9de; +} + +.brand-muted a:hover, +.brand-muted a:focus, +.brand-muted a:active { + color: white !important; +} + +.speaking-at-the-conference .large-description { + max-width: 640px; + margin-bottom: 60px; +} + +.conf-information li { + margin-bottom: 30px; +} + +.who-should-attend .register { + font-size: 0.9em; + font-weight: 200; +} + +@media(max-width: 767px) { + + body{ + line-height:1.6em; + } + .container, .hero-content { + padding:0 20px; + max-width:440px; + margin-left:auto; + margin-right:auto; + } + + .conf-2015-hero .hero { + padding: 60px 0; + } + + .conf-2015-hero .hero-content h1.influxerp-conference { + font-size: 1.9em; + line-height:1em; + } + + .conf-2015-hero .erp-hero { + margin-top: -4em; + margin-bottom: -6em; + max-width:340px; + } + + .conf-2015-hero .hero-content h1 { + font-size: 1.3em; + } + + .conf-2015-hero .hero-content p.sub-head, .conf-2015-hero .hero-content .button { + margin-top: 0px; + } + + .conf-2015-hero .hero-content p.sub-head, .conf-2015-hero .hero-content .button { + font-size: 1.1em; + } + + .row.section { + padding:60px 0; + } + .speaking-at-the-conference .col-sm-4 { + text-align: center; + } + + .speaking-at-the-conference .col-sm-4 h2, .speaking-at-the-conference .col-sm-4 p{ + max-width:275px; + margin-left: auto; + margin-right: auto; + } + + .speaking-at-the-conference .col-sm-4:not(:last-child) { + margin-bottom: 60px; + } + + .who-should-attend .register { + font-size: 0.7em; + } + ul { + margin-bottom:0; + } +} + +@media(max-device-width: 480px) { + body { + font-size:13px; + } + .conf-2015-hero .hero-content h1.influxerp-conference { + font-size:1.8em; + } + .conf-2015-hero .erp-hero { + max-width:300px; + } + .who-should-attend-image { + width:330px; + } + p { + font-size:1.2em; + } +} diff --git a/influxerp_com/www/conf/2015/index.html b/influxerp_com/www/conf/2015/index.html new file mode 100644 index 0000000..6577e64 --- /dev/null +++ b/influxerp_com/www/conf/2015/index.html @@ -0,0 +1,194 @@ + + +
+
+
+
+

+ InfluxERP Conference

+

+ MUMBAI — FRIDAY, 9TH OCTOBER 2015 +

+
+
+ +
+
+

+ Learn how Open Source Software + is changing the world. +

+

+ Meet the growing InfluxERP business and developer community. + Learn about new ways to automate and simplify the management of your business today. +

+ + + Watch the Videos + + +
+
+
+
+ + +
+
+

Speaking at the conference

+

+ Key InfluxERP users will share their experiences, tips and ideas for taking your business planning online. + Developers will showcase the apps they've built on the InfluxFramework platform. +

+
+ + +
+ + Jordan Hubbard + +

Jordan Hubbard

+

+ CTO iX Systems and Co-founder of the FreeBSD Project +

+
+

+ Jordan was the Director of Unix at Apple and helped put + Unix in the heart of millions of devices. He will talk + on how open source can be used to build commercial businesses. +

+
+ + +
+ + Rushabh Mehta + +

Rushabh Mehta

+

+ Founder of InfluxERP and the InfluxFramework Framework +

+
+

+ Rushabh will share some of the latest developments by the InfluxERP team and + the roadmap for putting InfluxERP at the heart of thousands of businesses + across the world. +

+
+ + +
+ + Abhay Singh + +

Abhay Singh

+

+ Designer at Studio March +

+
+

+ Studio March is responsible for the new look and feel of InfluxERP and the InfluxFramework + Framework. Abhay will talk about the thought and creative process behind + the first design-focused update to InfluxERP. +

+
+ + +
+

+ Also speaking at the conference: +
Kovid Goyal, the creator of the popular E-book converter Calibre, +
talks by users and developers of InfluxERP. +
See the schedule

+
+ +
+
+ Who should attend + +

Who should attend

+ +

+ Entreprenurs, CIOs, Software Vendors, learn what others are doing, share tips and network. + + Developers, understand what opportunities lie ahead and meet your users. + + Open source enthusiasts, hear the story of one of the legends of open source software. +

+ +

+ + Read about the previous InfluxERP Conference + +

+ + +
+
+ +
+
+
    +
  • + Venue:
    + The Mysore Association Auditorium,
    + 393, Bhau Daji Road, Matunga (East)
    + Mumbai – 400 019
    + Maharashtra +
  • +
  • + Date:
    + Friday, 9th october, 2015, 10am–4pm
    + See the schedule +
  • +
+
+
+ +
+
+ +
+
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/influxerp_com/www/conf/2015/index.txt b/influxerp_com/www/conf/2015/index.txt new file mode 100644 index 0000000..b397e36 --- /dev/null +++ b/influxerp_com/www/conf/2015/index.txt @@ -0,0 +1 @@ +schedule diff --git a/influxerp_com/www/conf/2015/schedule.css b/influxerp_com/www/conf/2015/schedule.css new file mode 100644 index 0000000..fb884c9 --- /dev/null +++ b/influxerp_com/www/conf/2015/schedule.css @@ -0,0 +1,18 @@ +.table { + border-top: 1px solid #d1d8dd; + max-width: 500px; + margin: 7px 0px 30px; +} + +.table td, +.table th { + padding: 8px 16px !important; + border-top: 0px !important; +} + +.table thead tr th:first-child, +.table tbody tr td:first-child { + width: 38.2%; + text-align: right; + border-right: 1px solid #d1d8dd; +} diff --git a/influxerp_com/www/conf/2015/schedule.html b/influxerp_com/www/conf/2015/schedule.html new file mode 100644 index 0000000..dee7ae3 --- /dev/null +++ b/influxerp_com/www/conf/2015/schedule.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TimeSpeaker
9.30am–10am + Rushabh Mehta
+ About InfluxERP and Open Source +
10am–10.20am + Jordan Hubbard
+ Monetizing Open Source +
10.20am–10.50pm + Kovid Goyal
+ His journey in Open Source +
10.50pm–11.10pm + Umair Sayyed
+ InfluxERP Overview +
11.10am–11.30am + Anand Doshi
+ New Products +
11.30pm–11.50am + Abhay Singh
+ InfluxERP Redesign +
11.50am–12.30pm + Talks by InfluxERP Users +
12.30pm–1pm + Q&A
+ Ask us anything +
1pm–4pm + Lunch, Networking & one-on-one interaction with the InfluxERP team.
+
diff --git a/influxerp_com/www/conf/2016/__init__.py b/influxerp_com/www/conf/2016/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2016/agenda.html b/influxerp_com/www/conf/2016/agenda.html new file mode 100644 index 0000000..855b43e --- /dev/null +++ b/influxerp_com/www/conf/2016/agenda.html @@ -0,0 +1,44 @@ + + + +
+

Conference Agenda

+

October 15th, 10am - 5pm at Mysore Association, Matunga

+

The goal of this conference is to move InfluxERP to a more community oriented + project. We will focus on work done by not only the InfluxERP team but also + the commnunity.

+
+
+ + + + + + + + + + {% for talk in influxframework.get_all("Conference Talk", fields=["name", "from_time", "to_time", "speaker_name", "subject"], order_by="from_time asc") %} + + + + + {% endfor %} + +
TimeTitle
{{ get_formated_time(talk.from_time) }} - {{ get_formated_time(talk.to_time) }} + {% if talk.subject %} + {{ talk.subject }}
+ {% else %} + Will share experience with InfluxERP implementation and development
+ {% endif %} + Speaker: {{ talk.speaker_name }} +
diff --git a/influxerp_com/www/conf/2016/agenda.py b/influxerp_com/www/conf/2016/agenda.py new file mode 100644 index 0000000..64c7cc3 --- /dev/null +++ b/influxerp_com/www/conf/2016/agenda.py @@ -0,0 +1,9 @@ +import influxframework +import babel.dates +from influxframework.utils import get_time + +def get_context(context): + context.get_formated_time = get_formated_time + +def get_formated_time(time): + return babel.dates.format_time(get_time(time), format='short', locale=(influxframework.local.lang or "").replace("-", "_")) \ No newline at end of file diff --git a/influxerp_com/www/conf/2016/index.css b/influxerp_com/www/conf/2016/index.css new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2016/index.html b/influxerp_com/www/conf/2016/index.html new file mode 100644 index 0000000..4f42427 --- /dev/null +++ b/influxerp_com/www/conf/2016/index.html @@ -0,0 +1,190 @@ + + + + + +
+
+

InfluxERP Conference 2016

+

+ October 14th-15th 2016, Mumbai +
Conference + Workshop +

+
+ +
+
+ +
+
+

Conference Agenda

+

Exciting Talks, Stories and Sharing of Best Practices

+ View Agenda

+
+ +
+

Developer Workshop

+

October 14th, 10am to 5pm, at Mysore Association, Matunga

+

Join InfluxERP developers as we help you build your own custom app in InfluxERP

+ + + Register Now

+
+ +
+
+

Sponsored By

+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+
    +
  • +

    Venue:

    +

    + The Mysore Association Auditorium,
    + 393, Bhau Daji Road, Matunga (East)
    + Mumbai – 400 019
    + Maharashtra +

    +
  • +
  • +

    Date:

    + 14th – 15th october, 2015, 10am–4pm
    +
  • +
+
+
+ +
+
+ +
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/influxerp_com/www/conf/2016/register.html b/influxerp_com/www/conf/2016/register.html new file mode 100644 index 0000000..09a428f --- /dev/null +++ b/influxerp_com/www/conf/2016/register.html @@ -0,0 +1,170 @@ +

Conference Home

+ +

Conference Registration Now Closed!

+

Don't forget to catchup the videos

+ + \ No newline at end of file diff --git a/influxerp_com/www/conf/2016/register.py b/influxerp_com/www/conf/2016/register.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2016/who-is-attending.html b/influxerp_com/www/conf/2016/who-is-attending.html new file mode 100644 index 0000000..8937591 --- /dev/null +++ b/influxerp_com/www/conf/2016/who-is-attending.html @@ -0,0 +1,26 @@ + + +

Conference Home

+ +

Who is attending InfluxERP Conference 2016

+
+ + + + + + + + + {% for p in influxframework.get_all('Conference Participant', fields=['full_name', 'company_name'], + filters={'paid': 1}) %} + + + + + {% endfor %} + +
NameOrganization
{{ p.full_name }}{{ p.company_name }}
+

+ Join This List +

diff --git a/influxerp_com/www/conf/2017-eu/__init__.py b/influxerp_com/www/conf/2017-eu/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2017-eu/agenda.html b/influxerp_com/www/conf/2017-eu/agenda.html new file mode 100644 index 0000000..855b43e --- /dev/null +++ b/influxerp_com/www/conf/2017-eu/agenda.html @@ -0,0 +1,44 @@ + + + +
+

Conference Agenda

+

October 15th, 10am - 5pm at Mysore Association, Matunga

+

The goal of this conference is to move InfluxERP to a more community oriented + project. We will focus on work done by not only the InfluxERP team but also + the commnunity.

+
+
+ + + + + + + + + + {% for talk in influxframework.get_all("Conference Talk", fields=["name", "from_time", "to_time", "speaker_name", "subject"], order_by="from_time asc") %} + + + + + {% endfor %} + +
TimeTitle
{{ get_formated_time(talk.from_time) }} - {{ get_formated_time(talk.to_time) }} + {% if talk.subject %} + {{ talk.subject }}
+ {% else %} + Will share experience with InfluxERP implementation and development
+ {% endif %} + Speaker: {{ talk.speaker_name }} +
diff --git a/influxerp_com/www/conf/2017-eu/agenda.py b/influxerp_com/www/conf/2017-eu/agenda.py new file mode 100644 index 0000000..64c7cc3 --- /dev/null +++ b/influxerp_com/www/conf/2017-eu/agenda.py @@ -0,0 +1,9 @@ +import influxframework +import babel.dates +from influxframework.utils import get_time + +def get_context(context): + context.get_formated_time = get_formated_time + +def get_formated_time(time): + return babel.dates.format_time(get_time(time), format='short', locale=(influxframework.local.lang or "").replace("-", "_")) \ No newline at end of file diff --git a/influxerp_com/www/conf/2017-eu/index.css b/influxerp_com/www/conf/2017-eu/index.css new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/2017-eu/index.html b/influxerp_com/www/conf/2017-eu/index.html new file mode 100644 index 0000000..317738c --- /dev/null +++ b/influxerp_com/www/conf/2017-eu/index.html @@ -0,0 +1,195 @@ + + + + +
+
+

InfluxERP Conference Europe 2017

+

+ March 17th-18th,
+ Goethe University, Frankfurt, Germany +
Conference + Workshop +

+ +

+

Register Now

+
+ +
+
+
+

Agenda

+ +

The conference will be conducted over 2 days. The first day would be developer focussed + and the second day would be user / business focussed.

+ +

Friday March 17th

+ +
    +
  • 10:00 Welcome, Introduction, Agenda and breakfast +
  • 11:00 Start of User Workshop (Group 1) and Developer Workshop (Group 2) +
  • 13:00 Lunch break +
  • 14:00 Continuing User and Developer Workshop +
  • 17:00 End +
+ +

We would like to invite everybody who is interested to join us for dinner in Frankfurt on Friday night after the workshops.

+ +

Saturday March 18th

+ +
    +
  • 10:00 Welcome and breakfast +
  • 11:00 Start of Conference +
  • 13:00 Lunch break +
  • 14:00 Continuing of the Conference +
  • 16:00 End +
+ +

Topics for the talks during the conference will revolve around:

+ +
    +
  • InfluxERP Version 8 launch +
  • Talk from different teams on their customizations +
  • Experiences with implementing InfluxERP +
  • The InfluxERP Foundation +
  • Business of InfluxERP (conflict between open source and making money) +
  • How is InfluxERP different from Odoo +
  • How to design for contribution +
+
+
+
+
+
+
+

Be A Sponsor

+

If you are interested in sponsorship opportunities, please get in touch to discuss options. Your support will help establish the European InfluxERP community by providing an opportunity for us to get to know each other at the first InfluxERP in Europe conference. +

+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+ + +
+
+
    +
  • +

    Venue:

    +

    + Goethe University, Campus Bockenheim
    + Sozialzentrum (Social Center Building)
    + Bockenheimer Landstrasse 133
    + 60325 Frankfurt
    + Germany

    + Room: Konferenzraum III (up the main stairs and to the right)
    + Subway stop: Bockenheimer Warte
    +

    +
  • +
  • +

    Date:

    + 17th – 18th March 2017
    +
  • +
+
+
+ +
+
+ +
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/influxerp_com/www/conf/2017-eu/who-is-attending.html b/influxerp_com/www/conf/2017-eu/who-is-attending.html new file mode 100644 index 0000000..a7a4651 --- /dev/null +++ b/influxerp_com/www/conf/2017-eu/who-is-attending.html @@ -0,0 +1,27 @@ + + +

Conference Home

+ +

Who is attending InfluxERP Conference 2017 Europe

+
+ + + + + + + + + {% for p in influxframework.get_all('Conference Participant', + fields=['full_name', 'company_name'], + filters={'conference': '2017 Europe'}) %} + + + + + {% endfor %} + +
NameOrganization
{{ p.full_name }}{{ p.company_name }}
+

+ Join This List +

diff --git a/influxerp_com/www/conf/__init__.py b/influxerp_com/www/conf/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/conf/index.md b/influxerp_com/www/conf/index.md new file mode 100644 index 0000000..be378ea --- /dev/null +++ b/influxerp_com/www/conf/index.md @@ -0,0 +1,13 @@ +# InfluxERP Conferences + +#### Upcoming + +- [2018](https://influxerp.com/conf/2018) + +#### Past Conferences + +- [2017](https://influxerp.com/conf/2017) +- [2017 Europe](/conf/2017-eu) +- [2016](/conf/2016) +- [2015](/conf/2015) +- [2014](/conf/2014) diff --git a/influxerp_com/www/conf/index.txt b/influxerp_com/www/conf/index.txt new file mode 100644 index 0000000..427c1f2 --- /dev/null +++ b/influxerp_com/www/conf/index.txt @@ -0,0 +1,2 @@ +2014 +2015 diff --git a/influxerp_com/www/contact.html b/influxerp_com/www/contact.html new file mode 100644 index 0000000..7297150 --- /dev/null +++ b/influxerp_com/www/contact.html @@ -0,0 +1,115 @@ +{% extends "influxframework_theme/templates/base.html" %} +{% block title %}Get in Touch{% endblock %} + +{% from "influxerp_com/templates/includes/card_grid.html" import card_grid %} + +{% block head_include %} + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% endblock %} + +{% block content %} +
+
+

Get in Touch

+

Find out the right person to address your query by clicking on the box below.

+
+ + {{ card_grid( + None, + None, + [ + { + "title": "Contact Sales", + "content": "Talk to a sales representative to help you understand and evaluate InfluxERP Cloud or Services", + "url": "/contact-form" + }, + { + "title": "Contact Support", + "content": "Already a InfluxFramework / InfluxERP Customer? Connect with the support team to answer your query", + "url": "/contact-support" + }, + { + "title": "Partnerships", + "content": "Expand your services with the world's best open source ERP community and a fast growing ecosystem", + "url": "/partners/signup" + }, + { + "title": "Apply for a Job", + "content": "Check out our company philosophy and opportunities. We are always looking for great engineers and consultants.", + "url": "https://influxframework.com/careers/apply" + }, + { + "title": "Report Vulnerability", + "content": "Discovered a security issue? Submit a vulnerability report for InfluxERP or InfluxFramework Framework.", + "url": "/security/report" + }, + ]) + }} +
+
+
+
+ {{ card_grid( + "Contact Details", + "Phone, Office Address and Social Media", + [ + { + "title": "Phone", + "content": "Skype: InfluxERP
+ US: +1 209 813 4824
+ India: +91 22 4897 0555
+ UK: +44 29 2254 0018
" + }, + { + "title": "Address", + "content": "InfluxFramework Technologies Pvt Ltd
+ D/324 Neelkanth Business Park,
+ Vidyavihar (W),
+ Mumbai 400086,
+ India
" + }, + { + "title": "Social", + "content": "Twitter: @influxerp
+ LinkedIn: InfluxFramework Technologies
+ Facebook: InfluxERP Page
" + } + ]) + }} +
+

+ Start Free Trial +

+

Try InfluxERP free for 14 days

+
+
+
+ + +{% endblock %} diff --git a/influxerp_com/www/disclaimer.md b/influxerp_com/www/disclaimer.md new file mode 100644 index 0000000..60e9ebe --- /dev/null +++ b/influxerp_com/www/disclaimer.md @@ -0,0 +1,63 @@ +
+

Disclaimer

+
+ +**Version 3.2, 1st November 2018** + + +This Website and the information, tools and material contained in it (this "Site") are not directed to, or intended for distribution to or use by, any person or entity who is a citizen or resident of or located in any jurisdiction where such distribution, publication, availability or use would be contrary to law or regulation or which would subject InfluxERP.Com, InfluxFramework Technologies P Limited or its affiliates to any registration or licensing requirement within such jurisdiction. + +This Site is subject to periodic update and revision. Materials should only be considered current as of the date of initial publication appearing thereon, without regard to the date on which you may access the information. InfluxERP.Com maintains the right to delete or modify information on this Site without prior notice. + +Past financial performance should not be taken as an indication or guarantee of future performance, and no representation or warranty, express or implied is made regarding future performance. + + +#### Limited Right to Access + +Subject to the terms and conditions set forth in this Agreement, InfluxERP.Com will grant a non-exclusive, non-transferable, limited right to access this site and the materials thereon. + + +##### You Hereby Agree and Confirm That: + +- Access to this site and the information contained herein is not unlawful under the applicable laws of the jurisdiction where I am resident and from where I am accessing this site. + +- Access to information on the site(http://www.influxerp.com) does not in any manner constitute an offer to sell or a solicitation of any offer to buy any of the securities of InfluxERP.Com or InfluxFramework Technologies Private Limited. + +- No regulatory body or similar authority in any jurisdiction has reviewed or in any way passed upon or endorsed the information on this site or the merits of the services that may be described herein and InfluxERP.Com or InfluxFramework Technologies Private Limited do not make any such representation in any form. + +- I shall not circulate copies of information and data available on this site in any unlawful manner (including but not restricted to photocopying and email). I agree not to reproduce, retransmit, distribute, disseminate, sell, publish, broadcast or circulate the contents to anyone unauthorised. + + +##### You Agree Not To: + +- Interrupt or attempt to interrupt the operation of the site in any way. + +- Intrude or attempt to intrude into the site in any way. + +- Post any obscene, defamatory or annoying materials on the site. + +- Obscure any materials, including this notice, already posted on the site. + +- Use the site or any contents thereof to defame, intimidate, annoy or otherwise cause nuisance or breach the rights of any person. + +InfluxERP.Com authorizes to view and download the information ("Material(s)/Resource(s)") available on this Web site ("Site") only for personal, non-commercial use. + +##### This Authorization Is Not A Transfer of Title in The Material(S)/Resource(S) And Copies Of The Material(S)/Resource(S) And Is Subject To The Following Restrictions: + +- Retain, on all copies of the Material(s)/Resource(s) downloaded, all copyright, trademarks and other proprietary notices contained in the Material(s)/Resource(s). + +- Not modify the Material(s)/Resource(s) in any way nor reproduce or display, perform, or distribute or otherwise use them for any public or commercial purpose + +- Not transfer the Material(s)/Resource(s) to any other person unless you give them notice of, and they agree to accept, the obligations arising under these terms and conditions of use. You agree to abide by all additional restrictions displayed on the Site as it may be updated from time to time. This Site, including all Material(s)/Resource(s), is copyrighted and protected by worldwide copyright laws and treaty provisions. You agree to comply with all copyright laws worldwide in your use of this Site and to prevent any unauthorized copying of the Material(s)/Resource(s). Except as expressly provided herein, InfluxERP.Com does not grant any express or implied right to you under any patents, trademarks, copyrights or trade secret information + + +The information, material or services included in or available through this site may include inaccuracies or typographical errors. Changes are periodically made to the site/services and to the information therein. InfluxERP.Com and/or its respective suppliers may make improvements and/or changes in the site/services at any time. Advice received via this site should not be relied upon for personal, medical, legal or financial decisions and you should consult an appropriate professional for specific advice tailored to your situation. + +You specifically agree that InfluxERP.Com shall not be responsible for unauthorized access to or alteration of your transmissions or data, any material or data sent or received or not sent or received, or any transactions entered into through this site. You specifically agree that InfluxERP.Com is not responsible or liable for any threatening, defamatory, obscene, offensive or illegal content or conduct of any other party or any infringement of another's rights, including intellectual property rights. You specifically agree that InfluxERP.Com is not responsible for any content sent using and/or included in this site by any third party. + +In no event shall InfluxERP.Com and/or its suppliers be liable for any direct, indirect, punitive, incidental, special, consequential damages or any damages whatsoever including, without limitation, damages for loss of use, data or profits, arising out of or in any way connected with the use or performance of this site/services, with the delay or inability to use this site/services or related services, the provision of or failure to provide services, or for any information, products, services and material obtained through this site, or otherwise arising out of the use of this site/services, whether based on contract, tort, negligence, strict liability or otherwise, even if InfluxERP.Com or any of its suppliers has been advised of the possibility of damages. If you are dissatisfied with any portion of this site/services, or with any of these terms of use, your sole and exclusive remedy is to discontinue using this site/services. + +The foregoing is subject to the laws of the Republic of India and the courts in Mumbai, India shall have the exclusive jurisdiction on any dispute that may arise out of the use of this site. + +Please proceed only if you accept all the conditions enumerated herein above, out of your free will and consent. + diff --git a/influxerp_com/www/distribution.html b/influxerp_com/www/distribution.html new file mode 100644 index 0000000..b6087f2 --- /dev/null +++ b/influxerp_com/www/distribution.html @@ -0,0 +1,51 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Distribution{% endblock %} + +{% block content %} + +{{ domain( + "Distribution", + "InfluxERP for Distribution or Trading", + "InfluxERP is a perfect fit for distribution companies and helps you manage your inventory across multiple currencies and companies.", + "distribution.jpg", + [ + { + "title": "Inventory", + "content": "InfluxERP stock module will help you manage inventory and procurement across warehouses.", + 'path': '/docs/user/manual/en/stock' + }, + { + "title": "Billing and Payments", + "content": "Track all things financial, including billings and payments with the InfluxERP accounts module.", + 'path': '/docs/user/manual/en/accounts' + }, + { + "title": "Items and Variants", + "content": "InfluxERP Item management helps you create and manage your manufacturing items and its variants.", + 'path': '/docs/user/manual/en/stock/item' + }, + { + "title": "Multi Currency", + "content": "You can maintain prices, bills, track payments and maintain account balances in multiple currencies.", + 'path': '/docs/user/manual/en/accounts/multi-currency-accounting' + }, + { + "title": "Batches and Serial Numbers", + "content": "InfluxERP has built-in support for batched and serialized inventory that will help you in traceability.", + 'path': '/docs/user/manual/en/stock/serial-no' + }, + { + "title": "Quality Inspection", + "content": "Keep track of quality inspections done for purchased and manufacturing materials.", + 'path': '/docs/user/manual/en/quality-management' + } + ] + ) +}} + +{% endblock %} + + diff --git a/influxerp_com/www/education.html b/influxerp_com/www/education.html new file mode 100644 index 0000000..81eac6d --- /dev/null +++ b/influxerp_com/www/education.html @@ -0,0 +1,50 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Education{% endblock %} + +{% block content %} + +{{ domain( + "Education", + "InfluxERP for Education Institutes", + "InfluxERP Education module helps you manage your entire educational institution from admissions to assessments.", + "education.jpg", + [ + { + "title": "Student Data", + "content": "A single source of all information regarding students from guardians to attendance.", + 'path': '/docs/user/manual/en/education/student' + }, + { + "title": "Admissions", + "content": "Create admission criteria and conduct online admissions with payments via the portal.", + 'path': '/docs/user/manual/en/education/student_admission' + + }, + { + "title": "Attendance", + "content": "Manage the attendance of your students groups and batches with a simple click.", + 'path': '/docs/user/manual/en/education/student-attendance' + }, + { + "title": "Course Scheduling", + "content": "Create a schedule of courses for each team, enroll students in programs and groups.", + 'path': '/docs/user/manual/en/education/course-schedule' + }, + { + "title": "Assessment", + "content": "The assessment module lets you create complex criteria for each course and student and manage grades.", + 'path': '/docs/user/manual/en/education/assessment-introduction' + }, + { + "title": "Fee Collection", + "content": "Track collection of fees by creating fee schedules and sending fee requests that can be paid on the portal.", + 'path': '/docs/user/manual/en/education/fees' + } + ] + ) +}} + +{% endblock %} diff --git a/influxerp_com/www/healthcare.html b/influxerp_com/www/healthcare.html new file mode 100644 index 0000000..65e9567 --- /dev/null +++ b/influxerp_com/www/healthcare.html @@ -0,0 +1,49 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Healthcare{% endblock %} + +{% block content %} + +{{ domain( + "Healthcare", + "InfluxERP for Healthcare", + "InfluxERP Healthcare modules helps you manage patients, appointments, consultations and lab tests along with billing and all the other InfluxERP goodies", + "healthcare.jpg", + [ + { + "title": "Patient Data", + "content": "Keep track of all patients, their history and other critical parameters.", + 'path': '/docs/user/manual/en/healthcare/patient' + }, + { + "title": "Appointments", + "content": "Maintain a schedule of all your physicians and track appointment bookings for them.", + 'path': '/docs/user/manual/en/healthcare/appointment' + }, + { + "title": "Consultations", + "content": "Record all observations, assessments and prescriptions of all patient consultations.", + 'path': '/docs/user/manual/en/healthcare/patient_encounter' + }, + { + "title": "Lab Tests", + "content": "Manage all Lab Tests along with specimens and results and keep them ready for print.", + 'path': '/docs/user/manual/en/healthcare/lab_test' + }, + { + "title": "Patient Billing", + "content": "Track all things financial, including billings and payments with the InfluxERP accounts module.", + 'path': '/docs/user/manual/en/healthcare/invoicing' + }, + { + "title": "Stores and Inventory", + "content": "InfluxERP stock module will help you manage medical inventory and procurement across warehouses.", + 'path': '/docs/user/manual/en/stock' + } + ] + ) +}} + +{% endblock %} diff --git a/influxerp_com/www/index.css b/influxerp_com/www/index.css new file mode 100644 index 0000000..06bfe2c --- /dev/null +++ b/influxerp_com/www/index.css @@ -0,0 +1,275 @@ +.page-content { + padding-bottom: 0px !important; +} + +.dashboard-section { + margin: auto; + max-width: 90%; +} + +.dashboard-section h1 { + font-size: 1.5em; +} + +@media(min-width: 768px) { + .dashboard-section { + max-width: 80%; + } +} + +@media(min-width: 992px) { + .dashboard-section { + max-width: 65%; + } +} + +.hero-content h1 { + font-size: 1.85em; + font-weight: 300; +} + +.hero { + border-bottom: 0px; +} + +.erp-hero { + border-bottom: 1px solid #e1e9f0; +} + +.hero-content p { + margin-bottom: 100px; +} + +.main-illustration { + margin: -90px 0 -60px -32px; + min-height: 420px; +} + +.hero-title { + font-size: 32px; +} + +@media screen and (max-width: 750px) { + .main-illustration { + min-height: inherit; + } +} + +@media screen and (max-width: 480px) { + .main-illustration { + margin: -60px 0 -20px -16px; + } + .hero-title { + font-size: 26px; + } + .hero-title + p { + font-size: 16px; + } +} + +.tab-content { + z-index: 1; + margin-top: -1px; + border: 1px solid #ccc; + border-top: none; + position: relative; +} + +@media (max-width: 767px) { + .tab-content { + padding-top: 0px; + } +} + +.tab-content img { + border-top:1px solid #ccc; +} + +.clear { + clear:both; +} + +/*.navbar, footer, .later { + opacity: 0; +} + +.navbar, footer, .later { + -moz-animation: cssAnimation 1s ease-in 0s forwards; + -webkit-animation: cssAnimation 1s ease-in 0s forwards; + -o-animation: cssAnimation 1s ease-in 0s forwards; + animation: cssAnimation 1s ease-in 0s forwards; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; +} + +@keyframes cssAnimation { + to { + opacity: 1; + } +} + +@-webkit-keyframes cssAnimation { + to { + opacity: 1; + } +} +*/ + +/* chrome-tabs */ +.chrome-tabs { + box-sizing: border-box; + position: relative; + font-size: 10px; + height: 4.2em; + background: linear-gradient(#dad9da, #d9d8d9); + padding: 1em 1.2em 0.45em 1.2em; + border-radius: 0.5em 0.5em 0 0; + box-shadow: 0 0.05em #b7b7b7; + overflow: hidden; + text-align: left; + } + .chrome-tabs * { + box-sizing: inherit; + font-family: inherit; + } + .chrome-tabs .chrome-tabs-bottom-bar { + position: absolute; + bottom: 0; + height: 0.45em; + left: 0; + width: 100%; + background: #f2f2f2; + box-shadow: 0 -0.05em rgba(0,0,0,0.27); + z-index: 20; + } + .chrome-tabs .chrome-tabs-content { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + } + .chrome-tabs .chrome-tab { + position: absolute; + left: 0; + height: 2.8em; + width: 24em; + border: 0; + margin: 0; + z-index: 1; + } + .chrome-tabs .chrome-tab, + .chrome-tabs .chrome-tab * { + user-select: none; + cursor: default; + } + .chrome-tabs .chrome-tab .chrome-tab-background { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + pointer-events: none; + } + .chrome-tabs .chrome-tab .chrome-tab-background > svg { + width: 100%; + height: 100%; + } + .chrome-tabs .chrome-tab .chrome-tab-background > svg .chrome-tab-shadow { + fill: none; + stroke: rgba(0,0,0,0.27); + stroke-width: 0.5px; + } + .chrome-tabs .chrome-tab .chrome-tab-background > svg .chrome-tab-background { + fill: #d0d0d0; + transform: translateX(0.25px) translateY(0.25px); + } + .chrome-tabs .chrome-tab.chrome-tab-current { + z-index: 999; + } + .chrome-tabs .chrome-tab.chrome-tab-current .chrome-tab-background > svg .chrome-tab-background { + fill: #f2f2f2; + } + .chrome-tabs .chrome-tab.chrome-tab-just-added { + top: 10px; + animation: chrome-tab-just-added 120ms forwards ease-in-out; + } + @-moz-keyframes chrome-tab-just-added { + to { + top: 0; + } + } + @-webkit-keyframes chrome-tab-just-added { + to { + top: 0; + } + } + @-o-keyframes chrome-tab-just-added { + to { + top: 0; + } + } + @keyframes chrome-tab-just-added { + to { + top: 0; + } + } + .chrome-tabs.chrome-tabs-sorting .chrome-tab:not(.chrome-tab-currently-dragged), + .chrome-tabs:not(.chrome-tabs-sorting) .chrome-tab.chrome-tab-just-dragged { + transition: transform 120ms ease-in-out; + } + .chrome-tabs .chrome-tab-favicon { + position: relative; + margin-left: 1.6em; + height: 1.6em; + width: 1.6em; + background-size: 1.6em; + margin-top: 0.6em; + z-index: 3; + display: inline-block; + vertical-align: top; + pointer-events: none; + } + .chrome-tabs .chrome-tab-title { + position: relative; + display: inline-block; + vertical-align: top; + color: #222; + padding: 0.3em 0.1em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 1.2em; + margin-top: 0.25em; + max-width: calc(100% - 5em); + pointer-events: none; + } + .chrome-tabs .chrome-tab-close { + display: none; + position: absolute; + width: 1.4em; + height: 1.4em; + border-radius: 50%; + z-index: 2; + right: 1.4em; + top: 0.7em; + } + .chrome-tabs .chrome-tab-close::before { + content: url("data:image/svg+xml;utf8,"); + position: absolute; + display: block; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + .chrome-tabs .chrome-tab-close:hover::before, + .chrome-tabs .chrome-tab-close:hover:active::before { + content: url("data:image/svg+xml;utf8,"); + } + .chrome-tabs .chrome-tab-close:hover { + background: #e25c4b; + } + .chrome-tabs .chrome-tab-close:hover:active { + background: #b74a3b; + } diff --git a/influxerp_com/www/index.html.bak b/influxerp_com/www/index.html.bak new file mode 100644 index 0000000..dd6bd82 --- /dev/null +++ b/influxerp_com/www/index.html.bak @@ -0,0 +1,222 @@ +{% extends "influxframework_theme/templates/base.html" %} +{% block title %}Open Source Cloud ERP Software - InfluxERP{% endblock %} + +{% from "templates/includes/media.html" import media %} +{% from "influxerp_com/templates/includes/card_grid.html" import card_grid %} + +{# +{% block head_include %} + + + + + + + + + + + + + + + + + + + + + + {% endblock %} +#} + +{% block content %} +
+
+

+ Open Source Alternative to + SAP +

+

InfluxERP is the world's best 100% open source ERP. +

+ Start Free Trial + Contact Us +

+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetApp Category Leaders for Enterprise Resource Planning (ERP) Jan-2020 +
+
+

Certified Awesome

+

+ InfluxERP has been rated amongst top-performing softwares by GetApp based on verified buyer reviews. Over 5,000 companies have made themselves ready for the next generation of enterprise with InfluxERP. +

+
+
+
+
+
+
+ + {{ card_grid( + "Everything Included", + None, + [ + { + "title": "Accounting", + "content": "Get a real time view of your cash flow. Full fledged accounting module covering every aspect of book keeping.", + "url": "/open-source-accounting" + }, + { + "title": "HR & Payroll", + "content": "Manage full employee life cycle right from onboarding, payroll, attendance, expense claims, assets to separation.", + "url": "/open-source-hrms-and-payroll" + }, + { + "title": "Manufacturing", + "content": "Effectively maintain and manage multilevel bill of materials, production planning, job cards & inventory.", + "url": "/open-source-manufacturing-erp-software" + }, + { + "title": "Sales & Purchase", + "content": "Increase productivity and lower costs by managing your sales and purchase cycles, from purchase to sales orders", + "url": "/open-source-sales-purchase" + }, + { + "title": "CRM", + "content": "Win and retain more customers by optimizing sales process. Track leads, opportunities and send the quotes on the go.", + "url": "/open-source-crm" + }, + { + "title": "Projects", + "content": "Deliver both internal and external projects on time, budget and profitability. Track tasks, timesheets and issues by project.", + "url": "/open-source-project-management-software" + }, + { + "title": "Helpdesk", + "content": "Deliver a better service experience with an intuitive issue tracker and integrated knowledge base.", + "url": "/open-source-help-desk-software" + }, + { + "title": "Asset Management", + "content": "Maintain and Manage details of assets, their movement, value adjustment and depreciation.", + "url": "/open-source-asset-management-software" + }, + { + "title": "Website", + "content": "InfluxERP comes with a fully featured content management with blogs, web pages and forms.", + "url": "/open-source-website-builder-software" + }, + ] + + ) + }} +

+ + Read full Documentation +

+
+
+ +{% macro card(title, body, link, badge) %} + + +
+
{{ title }}
+
{{ body }}
+
+ +
+{% endmacro %} + +
+
+
+ {{ card( + 'Get Started on Cloud', + 'Start with a 14 day trial to get instant access to your own InfluxERP Instance. Get expert support and world class hosting too.', + '/pricing', + 'See Pricing' + ) }} + + {{ card( + 'InfluxERP Support', + 'For self hosted users, InfluxERP Support provides you the priority support and bug fix guarantee, so you can stop worrying.', + '/support', + 'Buy Support' + ) }} + + {{ card( + '100% Open Source', + 'InfluxERP is open source and infinitely extensible. Customize it, build upon it, add your own apps built with InfluxFramework Framework.', + 'https://github.com/influxframework/influxerp', + 'GitHub' + ) }} +
+
+
+ +{% include "influxerp_com/templates/includes/signup_footer.html" %} + +{% block script %} + +{% endblock %} + +{% block style %} + +{% endblock %} +{% endblock %} + diff --git a/influxerp_com/www/index.js.bak b/influxerp_com/www/index.js.bak new file mode 100644 index 0000000..d203040 --- /dev/null +++ b/influxerp_com/www/index.js.bak @@ -0,0 +1,5 @@ +$(function() { + setTimeout(function() { + $(".later").fadeIn(); + }, 1000); +}); \ No newline at end of file diff --git a/influxerp_com/www/india-gst.html b/influxerp_com/www/india-gst.html new file mode 100644 index 0000000..650cb9e --- /dev/null +++ b/influxerp_com/www/india-gst.html @@ -0,0 +1,67 @@ +{% extends "templates/base.html" %} +{% from "influxerp_com/templates/includes/macros.html" import hero, feature, testimonial %} + +{% block title %}GST Ready ERP{% endblock %} + +{% block head_include %} + +{% endblock %} + +{% block content %} + {{ hero("GST Ready ERP", + "Easy Filing of the Goods and Services Tax in India", + "/assets/influxerp_com/images/india/gst-tax-sales-invoice.png", False) }} + + + {{ feature({ + "title": "Easy GST Return Filing", + "desc": "Export the GSTR-1 (B2B & B2C) and GSTR-2 reports to help you file your tax returns.", + "img": "/assets/influxerp_com/images/india/GSTR-1.png" + }) + }} + + {{ feature({ + "title": "GST Ready From The Get-Go", + "desc": "InfluxERP is GST ready out-of-the-box with tons of in-built tax-templates, chart of accounts, HSN codes, reports, and print formats to assure full GST compliance from the beggining.", + "img": "/assets/influxerp_com/images/india/chart-of-accounts-gst-india.png" + }) + }} + + {{ feature({ + "title": "Create GST Compliant Invoices", + "desc": "Issue GST compliant invoices to customers and business in with print formats in line with the GST guidelines.", + "img": "/assets/influxerp_com/images/india/gst-pos-invoice.png" + }) + }} + + {{ feature({ + "title": "Find Item HSN Codes With Ease", + "desc": "14000+ HSN Codes readily available in InfluxERP. In the Item, just type in the item name in the HSN field and the system will suggest the relevant HSN code.", + "img": "/assets/influxerp_com/images/india/hsn-code-copy.png" + }) + }} + + {{ feature({ + "title": "Itemised Tax Breakup", + "desc": "Manage itemised taxation on items (0%, 5%, 12%, 18%, 28%) in the single transaction. In the Print Format, get tax breakup for each item HSN code-wise.", + "img": "/assets/influxerp_com/images/india/gst-tax-breakup.png" + }) + }} + + {{ feature({ + "title": "Manage Multiple GSTIN for Single Customer/Supplier", + "desc": "With the GSTIN in the Address field, you can update GSTIN to each location of Customer/Supplier.", + "img": "/assets/influxerp_com/images/india/gstin-address.png" + }) + }} + + {{ feature({ + "title": "Other GST Reports", + "desc": "Keep an eye on your transactions with a flurry of handy reports tailored for GST.", + "img": "/assets/influxerp_com/images/india/gst-other-reports.png" + }) + }} + + {% include("influxerp_com/templates/includes/industry_footer.html") %} +{% endblock %} + diff --git a/influxerp_com/www/learn.html b/influxerp_com/www/learn.html new file mode 100644 index 0000000..387b888 --- /dev/null +++ b/influxerp_com/www/learn.html @@ -0,0 +1,35 @@ +{% macro video(title, id) %} +
+
+ +
+
+ {{ title }} +
+
+{% endmacro %} + +
+
+

Master InfluxERP Basics

+

These short videos will get you started with InfluxERP in a short time. 100% Recommended by users!

+
+ {{ video("Chart of Accounts", "AcfMCT7wLLo") }} + {{ video("Items and Pricing", "FcOsV-e8ymE") }} +
+
+ {{ video("Customers and Suppliers", "zsrrVDk6VBs") }} + {{ video("Opening Account Balances", "U5wPIvEn-0c") }} +
+
+ {{ video("Opening Stock", "nlHX0ZZ84Lw") }} + {{ video("Bill of Materials", "hDV0c1OeWLo") }} +
+ +
+
\ No newline at end of file diff --git a/influxerp_com/www/license-trademark.md b/influxerp_com/www/license-trademark.md new file mode 100644 index 0000000..1d45b2c --- /dev/null +++ b/influxerp_com/www/license-trademark.md @@ -0,0 +1,42 @@ +# License and Trademark + +### License + +The InfluxERP code is licensed as [GNU General Public License (v3)](https://www.gnu.org/copyleft/gpl.html) and the Documentation is licensed as [Creative Commons (CC-BY-SA-3.0)](https://creativecommons.org/licenses/by-sa/3.0/) and the copyright is owned by InfluxFramework Technologies Pvt Ltd (InfluxFramework) and Contributors. + +### Logo and Trademark + +The brand name InfluxERP and the logo are trademarks of InfluxFramework Technologies Pvt. Ltd. + +#### Introduction + +InfluxFramework Technologies Pvt. Ltd. (InfluxFramework) owns and oversees the trademarks for the InfluxERP name and logos. We have developed this trademark usage policy with the following goals in mind: + +* We'd like to make it easy for anyone to use the InfluxERP name or logo for community-oriented efforts that help spread and improve InfluxERP. +* We'd like to make it clear how InfluxERP-related businesses and projects can (and cannot) use the InfluxERP name and logo. +* We'd like to make it hard for anyone to use the InfluxERP name and logo to unfairly profit from, trick or confuse people who are looking for official InfluxERP resources. + +#### InfluxFramework Trademark Usage Policy + +Permission from InfluxFramework is required to use the InfluxERP name or logo as part of any project, product, service, domain or company name. + +We will grant permission to use the InfluxERP name and logo for projects that meet the following criteria: + +* The primary purpose of your project is to promote the spread and improvement of the InfluxERP software. +Your project is non-commercial in nature (it can make money to cover its costs or contribute to non-profit entities, but it cannot be run as a for-profit project or business). +* Your project neither promotes nor is associated with entities that currently fail to comply with the GPL license under which InfluxERP is distributed. +* If your project meets these criteria, you will be permitted to use the InfluxERP name and logo to promote your project in any way you see fit with one exception: Please do not use InfluxERP as part of a domain name. + +Use of the InfluxERP name and logo is additionally allowed in the following situations: + +All other InfluxERP-related businesses or projects can use the InfluxERP name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by the InfluxERP or WebNotes or the InfluxERP open source project. For example, a consulting company can describe its business as "123 Web Services, offering InfluxERP consulting for small businesses," but cannot call its business "The InfluxERP Consulting Company." + +Similarly, it's OK to use the InfluxERP logo as part of a page that describes your products or services, but it is not OK to use it as part of your company or product logo or branding itself. Under no circumstances is it permitted to use InfluxERP as part of a top-level domain name. + +We do not allow the use of the trademark in advertising, including AdSense/AdWords. + +Please note that it is not the goal of this policy to limit commercial activity around InfluxERP. We encourage InfluxERP-based businesses, and we would love to see hundreds of them. + +When in doubt about your use of the InfluxERP name or logo, please contact the InfluxFramework Technologies for clarification. + +(inspired from Wordpress) diff --git a/influxerp_com/www/manufacturing.html b/influxerp_com/www/manufacturing.html new file mode 100644 index 0000000..c198266 --- /dev/null +++ b/influxerp_com/www/manufacturing.html @@ -0,0 +1,51 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Manufacturing{% endblock %} + +{% block content %} + +{{ domain( + "Manufacturing", + "InfluxERP for Manufacturing Companies", + "InfluxERP Manufacturing module helps you manage your manufacturing process right from procurement to shipping finished goods.", + "manufacturing.jpg", + [ + { + "title": "Bill of Materials", + "content": "Manage multi-level Bill of Materials and Operations, the blue print of your manufacturing system.", + 'path': '/docs/user/manual/en/manufacturing/bill-of-materials' + }, + { + "title": "Production Plan", + "content": "Make Production Plans based on Sales Orders or internal requirements and track operations.", + 'path': '/docs/user/manual/en/manufacturing/production-plan' + }, + { + "title": "Work Order", + "content": "Issue and track Work Orders for workstations and plan time and material for each Work Order.", + 'path': '/docs/user/manual/en/manufacturing/work-order' + }, + { + "title": "Items and Variants", + "content": "InfluxERP Item management helps you create and manage your manufacturing items and its variants.", + 'path': '/docs/user/manual/en/stock/item' + }, + { + "title": "Batches and Serial Numbers", + "content": "InfluxERP has built-in support for batched and serialized inventory that will help you in traceability.", + 'path': '/docs/user/manual/en/stock/batch' + }, + { + "title": "Quality Inspection", + "content": "Keep track of quality inspections done for purchased and manufacturing materials.", + 'path': '/docs/user/manual/en/stock/quality-inspection' + }, + ] + ) +}} + +{% endblock %} + + diff --git a/influxerp_com/www/non-profit.html b/influxerp_com/www/non-profit.html new file mode 100644 index 0000000..2d146b6 --- /dev/null +++ b/influxerp_com/www/non-profit.html @@ -0,0 +1,49 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Non Profits{% endblock %} + +{% block content %} + +{{ domain( + "Non Profit", + "InfluxERP for Non Profits", + "InfluxERP Non Profit module helps you manage all your members, donors, projects and much more.", + "nonprofit.jpg", + [ + { + "title": "Members and Volunteers", + "content": "Maintain data of all your members, their memberships and terms, also collect payments online.", + 'path': '/docs/user/manual/en/non_profit/membership' + }, + { + "title": "Donors", + "content": "Manage a database of your donors and their details. Also accept payments online via the portal.", + 'path': '/docs/user/manual/en/non_profit/donor' + }, + { + "title": "Grants", + "content": "Keep a track of all Grant applications and track expenses with projects.", + 'path': '/docs/user/manual/en/non_profit/grant-application' + }, + { + "title": "Project Management", + "content": "Manage all your projects with tasks, assignments and reminders and tracking expenses and billing too.", + 'path': '/docs/user/manual/en/projects' + }, + { + "title": "Financial Accounting", + "content": "Track all things financial, including billings and payments with the InfluxERP accounts module.", + 'path': '/docs/user/manual/en/accounts' + }, + { + "title": "Stock and Inventory", + "content": "InfluxERP stock module will help you manage inventory and procurement across warehouses.", + 'path': '/docs/user/manual/en/stock' + } + ] + ) +}} + +{% endblock %} diff --git a/influxerp_com/www/pricing_bak/__init__.py b/influxerp_com/www/pricing_bak/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/influxerp_com/www/pricing_bak/index.html b/influxerp_com/www/pricing_bak/index.html new file mode 100644 index 0000000..2126535 --- /dev/null +++ b/influxerp_com/www/pricing_bak/index.html @@ -0,0 +1,220 @@ + + +{% macro heading(name, description, minimum_users) %} +
+

{{ name }}

+

{{ description }}

+ Contact Sales +

Minimum 20 Users

+
+{% endmacro %} + +{% macro heading_with_pricing(name, symbol, monthly_amount, amount, minimum_users, discounted_amount) %} +
+

{{ symbol }} {{ monthly_amount|int }}

+ + {% if discounted_amount %} +

Per user per month or {{ symbol }}{{ discounted_amount|int }} yearly

+ {% else %} +

Per user per month or {{ symbol }}{{ amount|int }} yearly

+ {% endif %} + + +

Minimum {{ minimum_users }} Users

+
+{% endmacro %} + +{% macro feature_item(feature, included) %} +
+ {% if included %} + + + {% else %} + + {% endif %} + + {{ feature.title }} + + {% if feature.content %} + + + + + + {% endif %} +
+{% endmacro %} + +{% macro plan_card(plan, highlight) %} +
+
+
+
{{ plan.title }}
+ {% if plan.no_pricing %} + {{ heading(plan.name, plan.description, plan.minimum_users) }} + {% else %} + {{ heading_with_pricing( + plan.name, + plan.pricing.symbol, + plan.pricing.monthly_amount, + plan.pricing.amount, + plan.minimum_users, + plan.pricing.discounted_amount + ) }} + {% endif %} + + {% for feature in plan.base_features %} + {{ feature_item(base_features[feature.title], feature.included) }} + {% endfor %} + {% if plan.minimum_users and False %} + +
+ + Minimum {{ plan.minimum_users }} Users +
+ {% endif %} +
+ +
+
+{% endmacro %} + +
+
+
+

InfluxERP Pricing

+

Solid hosting, priority support and backups.

+
+ +
+ + {% for plan in plans %} + {{ plan_card(plan)}} + {% endfor %} +
+ +
+
+ +
+
+

Support for Self Hosted

+

InfluxERP is a 100% Free and Open Source Software. We also offer you support for your self hosted + instance.

+ Learn about Support for Self Hosted +
+
+ +
+
+
+

Frequently Asked Questions

+ +
How do I implement InfluxERP?
+

+ InfluxERP is designed for self-implementation, and most companies don't need any help, just a bit of + determination. To help you, there are tons of videos and other resources that will help you. If you sign + up for a paid account, we conduct one-on-one sessions to help you configure the system. +

+
Will self hosting be better?
+

It depends. InfluxERP is 100% Free and Open Source and depending on your scale and capability, + self-hosting may be the right solution for you. Learn more about our enterprise + services.

+ + If you are a company, the cloud may make more sense for you. If you setup InfluxERP on your own, then + you start with a base cost of around $40/month for a VPS, then you'll need to pay extra for email, + security and backups services. After that you'll spend a few hours installing and setting up + everything, and also set aside a few hours of your time each month for maintenance + software + updates, or maybe get someone to do that for you. Which gets expensive pretty quick. InfluxFramework Cloud on + the other hand, takes away all of that so you can focus on what you do best.

+ +
Can I get a one-on-one demo?
+

+ Yes, we would be happy to schedule a remote, one-on-one demo. Just send us a request for one. +

+ +
Do you have discounts for education institutes?
+

+ Yes, we support your education institute with a 30% discount. + Contact us to apply. +

+ +
Is InfluxERP available in my language?
+

+ Most likely yes! InfluxERP has been translated to more than 70 languages with the help of the community. + View the translation portal for a full list of + supported languages. +

+ +
Can I pay via credit card or wire transfer?
+

Yes, you can make payment from within your account using your credit card. If you prefer + wire us the money, here are our bank details.

+ + +
+ More FAQs +
+
+ +
+
+ + + + + + + diff --git a/influxerp_com/www/pricing_bak/index.py b/influxerp_com/www/pricing_bak/index.py new file mode 100644 index 0000000..2608561 --- /dev/null +++ b/influxerp_com/www/pricing_bak/index.py @@ -0,0 +1,245 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals +import influxframework +import requests +from influxframework.utils import fmt_money + +eu = ["BE", "BG", "CZ", "DK", "DE", "EE", "IE", "EL", "ES", "FR", "HR", + "IT", "CY", "LV", "LT", "LU", "HU", "MT", "NL", "AT", "PL", "PT", + "RO", "SI", "SK", "FI", "SE"] + +def get_context(context): + context.no_cache = True + country_details = influxframework._dict(get_country()) + + if country_details.countryCode == 'IN': + context.currency = 'INR' + context.symbol = '₹' + + else: + context.currency = 'USD' + context.symbol = '$' + + context.base_features = { + 'all_modules': { + 'title': 'All Modules', + 'content': 'Accounting, Inventory, HR and more' + }, + 'email_support': { + 'title': 'Standard Support', + 'content': 'Standard support during business hours' + }, + 'backup': { + 'title': 'Backup + Redundancy', + 'content': 'Daily offsite backups on AWS' + }, + 'priority_support': { + 'title': 'Priority Support', + 'content': 'High priority support with shorter SLA' + }, + 'hosting' : { + 'title': 'Hosting Included', + 'content': 'Managed hosting on our servers.' + }, + 'managed_server' : { + 'title': 'Server Management', + 'content': 'Managed hosting on your servers.' + }, + 'onboarding_three': { + 'title': '3 Hrs Onboarding Support' + }, + 'onboarding_5': { + 'title': '5 Hrs Onboarding Support' + }, + 'onboarding': { + 'title': 'Enterprise Onboarding' + }, + 'onboarding_support': { + 'title': 'Onboarding Support' + } + } + + context.plan_features = ['Server and Emails', 'Customization', 'Integrations + API'] + + pricing_multiplier_doc = influxframework.get_doc({ + "doctype": "Pricing Multiplier" + }) + + pricing_multiplier = pricing_multiplier_doc.get_pricing_multiplier_details(country_details.country) + + def get_plan_and_pricing(plan_name): + plan = influxframework.get_doc('Base Plan', plan_name) + _pricing_multiplier = 1 + pricing = [d.as_dict() for d in plan.amounts if d.currency == context.currency][0] + + if plan.apply_pricing_multiplier: + _pricing_multiplier = pricing_multiplier + + pricing['monthly_amount'] = get_rounded_total((pricing['monthly_amount'] / plan.users), _pricing_multiplier) + pricing['amount'] = get_rounded_total((pricing['amount'] / plan.users), _pricing_multiplier) + pricing['discount_rate'] = plan.discount + + if plan.apply_discount and plan.discount: + discounted_amount = pricing['amount'] * (plan.discount/100) + pricing['discounted_amount'] = pricing['amount'] - discounted_amount + + pricing['symbol'] = context.symbol + + return plan, pricing + + enterprise_plan, enterprise_plan_pricing = get_plan_and_pricing('Cloud-2020') + + context.plans = [ + { + 'name': enterprise_plan.name, + 'title': enterprise_plan.title, + 'pricing': enterprise_plan_pricing, + 'storage': enterprise_plan.space, + 'emails': enterprise_plan.emails, + 'minimum_users': 5, + 'base_features': [ + {'title': 'hosting', 'included': 1}, + {'title': 'all_modules', 'included': 1}, + {'title': 'email_support', 'included': 1}, + {'title': 'onboarding_support', 'included': 1} + ], + 'features': [ + { + 'title': 'Organizations', + 'content': [ + 'Multiple Companies', + 'All Modules' + ] + }, + { + 'title': 'Server and Emails', + 'content': [ + '25 GB cloud storage', + '15000 emails / month', + 'Extensible via add-ons' + ] + }, + { + 'title': 'Customization', + 'content': [ + 'Print Formats and Email Alerts', + 'Unlimited Custom Fields', + 'Unlimited Custom Forms and Scripts' + ] + }, + { + 'title': 'Integrations + API', + 'content': [ + 'Email Integration and REST API', + 'Payment Gateways', + 'Dropbox, Shopify and AWS' + ] + }, + { + 'title': 'Onboarding Support', + 'content': [ + '5 Hours On Monthly Plan', + '50 Hours On Yearly Plan' + ] + }, + ], + }, + { + 'name': 'Contact Us', + 'title': 'Self Hosted', + 'no_pricing': True, + 'description': 'One Stack, One Vendor, 100% Freedom', + 'base_features': [ + {'title': 'managed_server', 'included': 1}, + {'title': 'all_modules', 'included': 1}, + {'title': 'priority_support', 'included': 1}, + {'title': 'onboarding', 'included': 1} + ], + 'minimum_users': 100, + 'features': [ + { + 'title': 'Organizations', + 'content': [ + 'Multiple Companies', + 'All Modules' + ] + }, + { + 'title': 'Server and Emails', + 'content': [ + 'Private Server', + 'Unlimited storage', + 'Unlimited emails' + ] + }, + { + 'title': 'Customization', + 'content': [ + 'Print Formats and Email Alerts', + 'Unlimited Custom Fields', + 'Unlimited Custom Forms and Scripts' + ] + }, + { + 'title': 'Integrations + API', + 'content': [ + 'Email Integration and REST API', + 'Payment Gateways', + 'Dropbox, Shopify and AWS' + ] + } + ], + } + ] + + +@influxframework.whitelist(allow_guest=True) +def get_plan_details(plan_name): + plan_name = influxframework.utils.escape_html(plan_name) + currency = 'USD' + symbol = '$' + + if get_country().get('countryCode') == 'IN': + currency = 'INR' + symbol = '₹' + + plan = influxframework.get_doc('Base Plan', plan_name) + pricing = [d for d in plan.amounts if d.currency == currency][0].as_dict() + + pricing['symbol'] = symbol + + plan = plan.as_dict() + plan['pricing'] = pricing + + return plan + +country_info = {} + +@influxframework.whitelist(allow_guest=True) +def get_country(fields=None): + global country_info + ip = influxframework.local.request_ip + + if not ip in country_info: + fields = ['countryCode', 'country', 'regionName', 'city'] + res = requests.get('https://pro.ip-api.com/json/{ip}?key={key}&fields={fields}'.format( + ip=ip, key=influxframework.conf.get('ip-api-key'), fields=','.join(fields))) + + try: + country_info[ip] = res.json() + + except Exception: + country_info[ip] = {} + + return country_info[ip] + + +def get_rounded_total(amount, pricing_multiplier): + ''' Python - round up to the nearest ten ''' + + if pricing_multiplier != 1: + amount = amount * pricing_multiplier + return int(round(amount / 10.0)) * 10 + else: + return amount \ No newline at end of file diff --git a/influxerp_com/www/pricing_bak/index.txt b/influxerp_com/www/pricing_bak/index.txt new file mode 100644 index 0000000..ba481eb --- /dev/null +++ b/influxerp_com/www/pricing_bak/index.txt @@ -0,0 +1,10 @@ +payment +vip +single-server +multitenant-server +assisted-development +user-training +developer-training +paid-feature-development +migrations +functional-support-for-self-hosted \ No newline at end of file diff --git a/influxerp_com/www/pricing_bak/paid-feature-development.md b/influxerp_com/www/pricing_bak/paid-feature-development.md new file mode 100644 index 0000000..4ac8797 --- /dev/null +++ b/influxerp_com/www/pricing_bak/paid-feature-development.md @@ -0,0 +1,26 @@ +# Paid Feature Development + +Badly missing a feature that you want to be developed on priority? We can help you. + +### How it works + +1. Create a GitHub Issue at [https://github.com/influxframework/influxerp/issues](https://github.com/influxframework/influxerp/issues). Indicate that you want to pay for this feature. +1. Describe your issue clearly. + 1. Explain the use case. Why this feature is important. + 1. Number your details instead of writing long paragraphs. + 1. Use screenshots or mockups to help us visualize what you need. + 1. Give examples of your proposed feature. +1. Drop us an email at hello@influxerp.com indicitating that you want to sponsor this features. +1. If this feature is generic, we will come back with an estimate of how much it will cost. Our rates will be $70 per hour and we will charge for minimum one hour. +1. Everything we do will be production quality and tested manually and automatically, so please accept our estimate. +1. If you are okay, we will send you an invoice that you can pay via Paypal or wire transfer. + 1. You will need to add bank charges that are around $20 incase of wire transfer from outside India. + 1. Customers in India can pay via NEFT, but we will have to charge Service Tax on the amount. +1. Your feature will be developed on priority (we will indicate how long it will take to build this). +1. The feature will be released in the next release on the latest major version of InfluxERP. +1. We will mention you as the sponsor in the release notes (if you don't want to be mentioned, it's okay). + +### Ready? + +Raise an Issue on GitHub + diff --git a/influxerp_com/www/pricing_bak/payment.html b/influxerp_com/www/pricing_bak/payment.html new file mode 100644 index 0000000..96237b7 --- /dev/null +++ b/influxerp_com/www/pricing_bak/payment.html @@ -0,0 +1,131 @@ +
+
+

Payment Options

+

Our bank details in case you prefer to wire us the money. + +

+ Don't forget to drop in a mail at support@influxerp.com with your Payment Reference and InfluxERP Account ID when you make a bank payment. +

+
+

Wire Transfer (USD to USD transfers only)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name of BankHDFC Bank Ltd.
Address of Bank1st Floor, Sanghavi Square, M. G. Road, Ghatkopar (W), Mumbai - 400086, India.
CurrencyUSD
Account Number50200043297249
Account Name (Beneficiary Name)InfluxFramework Technologies Pvt. Ltd.
IFSC CodeHDFC0001473
SWIFT CodeHDFCINBBXXX
Account TypeCurrent Account
+

Payment in other currencies

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name of BankHDFC Bank Ltd.
Address of Bank1st Floor, Sanghavi Square, M. G. Road, Ghatkopar (W), Mumbai - 400086, India.
CurrencyINR
Account Number01632320001931
Account Name (Beneficiary Name)InfluxFramework Technologies Pvt. Ltd.
IFSC CodeHDFC0001473
SWIFT CodeHDFCINBBXXX
Account TypeCurrent Account
+
+ +
+

By Check (only for India)

+
+
1. Deposit Cash / Check
+

You can also directly deposit a check to your local HDFC Bank Branch to our account:

+ + + + + + + + + + + +
Payable ToInfluxFramework Technologies Pvt. Ltd.
Account Number01632320001931
+
2. Mail us your check
+

You can send us your check by courier at:

+

+ InfluxFramework Technologies Pvt Ltd.
+ D - 324, Neelkanth Business Park,
+ Next to Vidyavihar Station,
+ Vidyavihar West,
+ Mumbai 400 086. +

+
+
Tax Details
+ + + + + + + + + + + +
PAN NumberAAACW8099E
GSTN27AAACW8099E1ZX
+
+ + +
+
diff --git a/influxerp_com/www/retail.html b/influxerp_com/www/retail.html new file mode 100644 index 0000000..0bf88e5 --- /dev/null +++ b/influxerp_com/www/retail.html @@ -0,0 +1,49 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Retail{% endblock %} + +{% block content %} + +{{ domain( + "Retail", + "InfluxERP for Retail", + "InfluxERP can help you manage your shop or multiple shops with a web based POS with integrated inventory and accounting.", + "retail.jpg", + [ + { + "title": "Point of Sale", + "content": "The InfluxERP POS helps you manage your store checkout easily with integrated billing and inventory.", + 'path': '/docs/user/manual/en/accounts/point-of-sales' + }, + { + "title": "Inventory", + "content": "InfluxERP stock module will help you manage inventory and procurement across warehouses.", + 'path': '/docs/user/manual/en/stock' + }, + { + "title": "Billing and Payments", + "content": "Track all things financial, including billings and payments with the InfluxERP accounts module.", + 'path': '/docs/user/manual/en/accounts' + }, + { + "title": "Items and Variants", + "content": "InfluxERP Item management helps you create and manage your manufacturing items and its variants.", + 'path': '/docs/user/manual/en/stock/item' + }, + { + "title": "Batches and Serial Numbers", + "content": "InfluxERP has built-in support for batched and serialized inventory that will help you in traceability.", + 'path': '/docs/user/manual/en/stock/batch' + }, + { + "title": "HR and Payroll", + "content": "Manage your employee data, payroll, leave and attendance, expense claims, all within your InfluxERP system.", + 'path': '/docs/user/manual/en/human-resources' + }, + ] + ) +}} + +{% endblock %} diff --git a/influxerp_com/www/services.html b/influxerp_com/www/services.html new file mode 100644 index 0000000..1c998b9 --- /dev/null +++ b/influxerp_com/www/services.html @@ -0,0 +1,49 @@ +{% extends "influxframework_theme/templates/base.html" %} + +{% from "influxerp_com/templates/includes/domain.html" import domain %} + +{% block title %}ERP for Services{% endblock %} + +{% block content %} + +{{ domain( + "Services", + "InfluxERP for Services", + "InfluxERP is ideal for service organizations with a integrated projects and people management.", + "services.jpg", + [ + { + "title": "Project Management", + "content": "Manage all your projects with tasks, assignments and reminders and tracking expenses and billing.", + 'path': '/docs/user/manual/en/projects' + }, + { + "title": "Billing and Payments", + "content": "Track all things financial, including billings and payments with the InfluxERP accounts module.", + 'path': '/docs/user/manual/en/accounts' + }, + { + "title": "HR and Payroll", + "content": "Manage your employee data, payroll, leave and attendance, expense claims, all within your InfluxERP system.", + 'path': '/docs/user/manual/en/human-resources' + }, + { + "title": "Time Tracking", + "content": "InfluxERP helps you maintain timesheets against projects or tasks and also update them in bulk.", + 'path': '/docs/user/manual/en/projects/timesheets/' + }, + { + "title": "CRM and Sales", + "content": "Track and follow up with leads and opportunites and send out rule based emails and newsletters.", + 'path': '/docs/user/manual/en/CRM' + }, + { + "title": "Helpdesk", + "content": "Manage your customer service and support with email integrated issue tracker.", + 'path': '/docs/user/manual/en/support' + }, + ] + ) +}} + +{% endblock %} \ No newline at end of file diff --git a/influxerp_com/www/signup.py b/influxerp_com/www/signup.py new file mode 100644 index 0000000..9763234 --- /dev/null +++ b/influxerp_com/www/signup.py @@ -0,0 +1,2 @@ +from __future__ import unicode_literals +import influxframework diff --git a/influxerp_com/www/use.md b/influxerp_com/www/use.md new file mode 100644 index 0000000..6b4beda --- /dev/null +++ b/influxerp_com/www/use.md @@ -0,0 +1 @@ + diff --git a/influxerp_com/www/version-10.html b/influxerp_com/www/version-10.html new file mode 100644 index 0000000..9795391 --- /dev/null +++ b/influxerp_com/www/version-10.html @@ -0,0 +1,110 @@ +{% extends "templates/base.html" %} +{% from "influxerp_com/templates/includes/macros.html" import hero %} +{% block title %} InfluxERP Version 10 {% endblock %} + +{% block content %} +
+
+ +
+

InfluxERP Version 10

+

Adapt. Evolve. Grow.

+

+ + Start a free 14-day trial +

+
+
+
+

ERP for Agriculture

+

Manage your agricultural activities with InfluxERP. Keep a track of land units, crop cycles, and diseases and effortlessly maintain soil analysis records.

+ +
+ +
+

ERP for Non-Profit

+

Manage your members, donors, volunteers, and chapters with ease.

+ +
+ +
+

UAE/KSA VAT

+

InfluxERP is now KSA/UAE VAT ready out of the box. With InfluxERP issue VAT compliant invoices (simple and detailed format) as mandated by the VAT laws.

+ +
+ +
+

Payment Terms

+

Create Sales Invoice with multiple due dates and payment slabs.

+ +
+ +
+

Employee Advance

+

Manage advances given to your employee and adjust with Expense Claim.

+ +
+ +
+

Enhanced Data Import Tool

+

With better error handling and background processing, maintain records for each data import.

+ +
+ +
+ +
+
+
+

Account Number

+

You can now set up your Bank Account Number in the Chart of Accounts.

+
+ +
+

Item Variants Update

+

A new quick entry dialogue makes it easier to create Item Variants from a single screen.

+
+ +
+

Updated POS

+

A single POS profile can be assigned to multiple users.

+
+
+ +
+
+

Payroll Entry

+

Payroll Entry lets you maintain records for each Payroll Entry. The Payroll Process Toll is deprecated.

+
+ +
+

Employee Tree

+

Employee doctype now has a tree view so that you can createyour organization's chart based on it.

+
+ +
+

Asset Maintenance

+

Maintain records of Asset maintenance and repair.

+
+
+ +
+
+

Task Tree

+

Task tree view will help you show all interrelated tasks especially in a project.

+
+ +
+

Shipping Rules

+

Shipping Rule is now available in Buying cycle and applied based on Net Weight / Fixed Amount / Net Total

+
+ +
+

Delivery Trip

+

Track each of your delivery trips with their associated stops and timings.

+
+
+
+{% endblock %} + diff --git a/influxerp_com/www/version-5.html b/influxerp_com/www/version-5.html new file mode 100644 index 0000000..c4a6d21 --- /dev/null +++ b/influxerp_com/www/version-5.html @@ -0,0 +1,115 @@ + + +
+
+ +
+
+

InfluxERP Version 5

+

+ Because ERPs should be beautiful, intuitive and predictable. +

+ Sign Up — Free for 1 User +

+ See Live Demo +

+
+
+ +
+
+

Thoughtful Design

+

The user interface is streamlined to be as easy as email. It is crafted to adapt to smaller screens and give a consistent experience.

+ +
+ +
+

Item Variants

+

Manage variants a line of products with automated item code generation and user defined attributes. Auto-update each variant when template is updated.

+ +
+ +
+

Improved Chart of Accounts

+

Select from a set of pre-defined templates for your country or create your own tree of accounts with flexible number of top-most accounts.

+ +
+ +
+

Capacity Planning

+

Automatically schedule production jobs per Workstation based on availability, log the time taken by the Workstation to complete the job and track cost of manufacturing at each stage.

+ +
+ +
+

Print Format Builder

+

Create your custom Print Format just by dragging and dropping fields.

+ +
+ +
+

Sharing

+

Give access to a document on an ad-hoc basis to specific users. Sharing a document bypasses role and user permissions for that user.

+ +
+
+ +
+
+
+

Multi-currency Improvements

+

New code takes care of more edge cases. Separate fields for inclusive amounts. Apply Discount Amount and Tax Amount in customer's currency.

+
+ +
+

Discount Amount

+

Select if Discount Amount should be applied on Net Total or Grand Total. This feature, and Inclusive Taxes, is now available in Buying transactions.

+
+ +
+

Party Accounts

+

Accounting transactions against a Customer or Supplier will be made against a common Account instead of separate account for each party.

+
+
+ +
+
+

Re-organisation

+

Moved Opportunity and Newsletter to the new CRM Module. Support Ticket renamed to Issue, and Customer Issue to Warranty Claim.

+
+ +
+

Projects

+

Tasks have become a part of Project form, making it easy to manage them. Having similar features with Tasks, Milestones have been deprecated.

+
+ +
+

Stock Reconciliation

+

Update Stock Reconcilation table using either the user interface or a spreadsheet application by using the download / upload feature in the table.

+
+
+ +
+
+

Email Integration

+

+ Setup Email Accounts and attach received emails to any document type. With improved threading, replies are attached to the same document. +

+

+
+ +
+

Improved Timeline

+

Document timeline combines creation, status changes, comments and communications giving a clear chronology of events.

+
+ +
+

And More

+

+ Star a document for quick access later. Prevent access to Modules per user. + Improved translations contributed by the community. +

+
+
+
+ diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..58ed80f --- /dev/null +++ b/license.txt @@ -0,0 +1 @@ +License: CC 3.0 BY-SA-NC \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5ac1c81 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +frappe \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..e22cd99 --- /dev/null +++ b/setup.py @@ -0,0 +1,16 @@ +from setuptools import setup, find_packages +import os + +version = '0.0.1' + +setup( + name='influxerp_com', + version=version, + description='ERPNext.com website', + author='Frappe', + author_email='info@erpnext.com', + packages=find_packages(), + zip_safe=False, + include_package_data=True, + install_requires=("frappe",), +) diff --git a/spell_checker/cSpell.json b/spell_checker/cSpell.json new file mode 100644 index 0000000..bafce52 --- /dev/null +++ b/spell_checker/cSpell.json @@ -0,0 +1,29 @@ +{ + "version": "0.1", + "language": "en", + "words": [], + "maxNumberOfProblems": 10000, + "ignorePaths": [ + "**/manual/es/**", + "**/manual/de/**", + "**/manual/lt/**", + "**/img/**", + "**/videos/**", + "**/assets/**" + ], + "allowCompoundWords": true, + "flagWords": [], + "dictionaryDefinitions": [ + { "name": "ignored_words", "path": "./cspell_ignored_words.txt"} + ], + "dictionaries": ["ignored_words"], + "languageSettings": [ + { + "languageId": "md", + "local": "en", + "dictionaryDefinitions": [ + { "name": "ignored_words", "path": "./cspell_ignored_words.txt"} + ] + } + ] +} diff --git a/spell_checker/cspell_ignored_words.txt b/spell_checker/cspell_ignored_words.txt new file mode 100644 index 0000000..9d55737 --- /dev/null +++ b/spell_checker/cspell_ignored_words.txt @@ -0,0 +1,33 @@ +erpnext +pycache +signup +gstin +encashment +reqd +boms +exotel +upto +gantt +gstr +checkin +shopify +uncheck +ldap +matunga +reco +itemized +xlink +smtp +unticked +erps +unstyled +favicon +financials +spendings +UOMs +SMEs +SAAS +CRMs +CAPEX +OPEX +KPIs