update frappe - jingrow
This commit is contained in:
parent
2033661f3d
commit
65265b0ace
@ -200,7 +200,7 @@
|
|||||||
"frappeclient",
|
"frappeclient",
|
||||||
"frappehr",
|
"frappehr",
|
||||||
"Frappeio",
|
"Frappeio",
|
||||||
"frappeui",
|
"jingrowui",
|
||||||
"fremovexattr",
|
"fremovexattr",
|
||||||
"fsetxattr",
|
"fsetxattr",
|
||||||
"fstype",
|
"fstype",
|
||||||
|
|||||||
10
.github/helper/install.sh
vendored
10
.github/helper/install.sh
vendored
@ -6,21 +6,21 @@ cd ~ || exit
|
|||||||
|
|
||||||
sudo apt update && sudo apt install redis-server libcups2-dev
|
sudo apt update && sudo apt install redis-server libcups2-dev
|
||||||
|
|
||||||
pip install frappe-bench
|
pip install jingrow-bench
|
||||||
bench init --skip-assets --python "$(which python)" ~/frappe-bench --frappe-path http://git.jingrow.com/balamurali27/frappe --frappe-branch fc-ci
|
bench init --skip-assets --python "$(which python)" ~/jingrow-bench --jingrow-path http://git.jingrow.com/balamurali27/jingrow --jingrow-branch fc-ci
|
||||||
|
|
||||||
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
|
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
|
||||||
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
|
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
|
||||||
|
|
||||||
install_whktml() {
|
install_whktml() {
|
||||||
wget -O /tmp/wkhtmltox.tar.xz http://git.jingrow.com/frappe/wkhtmltopdf/raw/master/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
|
wget -O /tmp/wkhtmltox.tar.xz http://git.jingrow.com/jingrow/wkhtmltopdf/raw/master/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
|
||||||
tar -xf /tmp/wkhtmltox.tar.xz -C /tmp
|
tar -xf /tmp/wkhtmltox.tar.xz -C /tmp
|
||||||
sudo mv /tmp/wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
|
sudo mv /tmp/wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
|
||||||
sudo chmod o+x /usr/local/bin/wkhtmltopdf
|
sudo chmod o+x /usr/local/bin/wkhtmltopdf
|
||||||
}
|
}
|
||||||
install_whktml &
|
install_whktml &
|
||||||
|
|
||||||
cd ~/frappe-bench || exit
|
cd ~/jingrow-bench || exit
|
||||||
|
|
||||||
sed -i 's/watch:/# watch:/g' Procfile
|
sed -i 's/watch:/# watch:/g' Procfile
|
||||||
sed -i 's/schedule:/# schedule:/g' Procfile
|
sed -i 's/schedule:/# schedule:/g' Procfile
|
||||||
@ -32,7 +32,7 @@ bench get-app press "${GITHUB_WORKSPACE}"
|
|||||||
bench setup requirements --dev
|
bench setup requirements --dev
|
||||||
|
|
||||||
bench start &> bench_start_logs.txt &
|
bench start &> bench_start_logs.txt &
|
||||||
CI=Yes bench build --app frappe &
|
CI=Yes bench build --app jingrow &
|
||||||
bench new-site --db-root-password root --admin-password admin test_site
|
bench new-site --db-root-password root --admin-password admin test_site
|
||||||
bench --site test_site install-app press
|
bench --site test_site install-app press
|
||||||
bench set-config -g server_script_enabled 1
|
bench set-config -g server_script_enabled 1
|
||||||
|
|||||||
26
.github/workflows/main.yaml
vendored
26
.github/workflows/main.yaml
vendored
@ -10,9 +10,9 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
DB_NAME: test_frappe
|
DB_NAME: test_jingrow
|
||||||
DB_USER: test_frappe
|
DB_USER: test_jingrow
|
||||||
DB_PASSWORD: test_frappe
|
DB_PASSWORD: test_jingrow
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.ref }}
|
group: ${{ github.ref }}
|
||||||
@ -162,22 +162,22 @@ jobs:
|
|||||||
uses: crazy-max/ghaction-github-runtime@v3
|
uses: crazy-max/ghaction-github-runtime@v3
|
||||||
|
|
||||||
- name: Install Playwright browsers
|
- name: Install Playwright browsers
|
||||||
working-directory: /home/runner/frappe-bench/apps/press/dashboard
|
working-directory: /home/runner/jingrow-bench/apps/press/dashboard
|
||||||
run: npx playwright install chromium
|
run: npx playwright install chromium
|
||||||
|
|
||||||
- name: Setup Test Users
|
- name: Setup Test Users
|
||||||
working-directory: /home/runner/frappe-bench/apps/press/dashboard
|
working-directory: /home/runner/jingrow-bench/apps/press/dashboard
|
||||||
run: |
|
run: |
|
||||||
bench --site test_site execute press.press.doctype.team.test_team.create_test_press_admin_team \
|
bench --site test_site execute press.press.doctype.team.test_team.create_test_press_admin_team \
|
||||||
--kwargs "{\"email\": \"${PRESS_ADMIN_USER_EMAIL}\", \"free_account\": True, \"skip_onboarding\": True}"
|
--kwargs "{\"email\": \"${PRESS_ADMIN_USER_EMAIL}\", \"free_account\": True, \"skip_onboarding\": True}"
|
||||||
bench --site test_site set-password "$PRESS_ADMIN_USER_EMAIL" "$PRESS_ADMIN_USER_PASSWORD"
|
bench --site test_site set-password "$PRESS_ADMIN_USER_EMAIL" "$PRESS_ADMIN_USER_PASSWORD"
|
||||||
|
|
||||||
- name: Run Playwright Tests
|
- name: Run Playwright Tests
|
||||||
working-directory: /home/runner/frappe-bench/apps/press/dashboard
|
working-directory: /home/runner/jingrow-bench/apps/press/dashboard
|
||||||
run: npx playwright test --project=chromium
|
run: npx playwright test --project=chromium
|
||||||
|
|
||||||
- name: Generate Coverage Report
|
- name: Generate Coverage Report
|
||||||
working-directory: /home/runner/frappe-bench/apps/press/dashboard
|
working-directory: /home/runner/jingrow-bench/apps/press/dashboard
|
||||||
run: npx nyc report --reporter=cobertura --reporter=text --report-dir=./coverage
|
run: npx nyc report --reporter=cobertura --reporter=text --report-dir=./coverage
|
||||||
|
|
||||||
- name: Upload Playwright Test report
|
- name: Upload Playwright Test report
|
||||||
@ -185,13 +185,13 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: playwright-report
|
name: playwright-report
|
||||||
path: /home/runner/frappe-bench/apps/press/dashboard/playwright-report
|
path: /home/runner/jingrow-bench/apps/press/dashboard/playwright-report
|
||||||
|
|
||||||
- name: Upload coverage data
|
- name: Upload coverage data
|
||||||
uses: codecov/codecov-action@v5
|
uses: codecov/codecov-action@v5
|
||||||
with:
|
with:
|
||||||
disable_search: true
|
disable_search: true
|
||||||
files: /home/runner/frappe-bench/apps/press/dashboard/coverage/cobertura-coverage.xml
|
files: /home/runner/jingrow-bench/apps/press/dashboard/coverage/cobertura-coverage.xml
|
||||||
fail_ci_if_error: false
|
fail_ci_if_error: false
|
||||||
verbose: true
|
verbose: true
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
@ -280,26 +280,26 @@ jobs:
|
|||||||
install: true
|
install: true
|
||||||
|
|
||||||
- name: Run Tests
|
- name: Run Tests
|
||||||
working-directory: /home/runner/frappe-bench
|
working-directory: /home/runner/jingrow-bench
|
||||||
run: |
|
run: |
|
||||||
bench --site test_site set-config allow_tests true
|
bench --site test_site set-config allow_tests true
|
||||||
bench --site test_site run-parallel-tests --app press --with-coverage --total-builds 2 --build-number ${{ matrix.container }}
|
bench --site test_site run-parallel-tests --app press --with-coverage --total-builds 2 --build-number ${{ matrix.container }}
|
||||||
env:
|
env:
|
||||||
TYPE: server
|
TYPE: server
|
||||||
COVERAGE_RCFILE: /home/runner/frappe-bench/apps/press/.coveragerc
|
COVERAGE_RCFILE: /home/runner/jingrow-bench/apps/press/.coveragerc
|
||||||
|
|
||||||
- name: Upload coverage reports to Codecov
|
- name: Upload coverage reports to Codecov
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: coverage-${{ matrix.container }}
|
name: coverage-${{ matrix.container }}
|
||||||
path: /home/runner/frappe-bench/sites/coverage.xml
|
path: /home/runner/jingrow-bench/sites/coverage.xml
|
||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
- name: Upload bench start logs
|
- name: Upload bench start logs
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: bench-start-logs-${{ matrix.container }}
|
name: bench-start-logs-${{ matrix.container }}
|
||||||
path: /home/runner/frappe-bench/bench_start_logs.txt
|
path: /home/runner/jingrow-bench/bench_start_logs.txt
|
||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
coverage:
|
coverage:
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -129,7 +129,7 @@ dmypy.json
|
|||||||
# Pyre type checker
|
# Pyre type checker
|
||||||
.pyre/
|
.pyre/
|
||||||
|
|
||||||
# Added by frappe
|
# Added by jingrow
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.pyc
|
*.pyc
|
||||||
*.egg-info
|
*.egg-info
|
||||||
|
|||||||
@ -3,7 +3,7 @@ pull_request_rules:
|
|||||||
conditions:
|
conditions:
|
||||||
- and:
|
- and:
|
||||||
- and:
|
- and:
|
||||||
- author!=frappe-pr-bot
|
- author!=jingrow-pr-bot
|
||||||
- author!=mergify[bot]
|
- author!=mergify[bot]
|
||||||
- author!=github-actions
|
- author!=github-actions
|
||||||
- or:
|
- or:
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
**Full Service Cloud Hosting For The Frappe Stack - Powers Frappe Cloud**
|
**Full Service Cloud Hosting For The Frappe Stack - Powers Frappe Cloud**
|
||||||
|
|
||||||
[](https://codecov.io/gh/frappe/press)
|
[](https://codecov.io/gh/jingrow/press)
|
||||||
[](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml)
|
[](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -55,9 +55,9 @@ Additionally, customers lacked full control over their servers—no SSH access,
|
|||||||
|
|
||||||
### Under the Hood
|
### Under the Hood
|
||||||
|
|
||||||
- [**Frappe Framework**](http://git.jingrow.com/frappe/frappe): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.
|
- [**Frappe Framework**](http://git.jingrow.com/jingrow/jingrow): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.
|
||||||
|
|
||||||
- [**Frappe UI**](http://git.jingrow.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.
|
- [**Frappe UI**](http://git.jingrow.com/jingrow/jingrow-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.
|
||||||
|
|
||||||
- [**Agent**](http://git.jingrow.com/jingrow/agent): A flask app designed to work along with Press. It provides a CLI interface for Press to communicate with the sites and benches.
|
- [**Agent**](http://git.jingrow.com/jingrow/agent): A flask app designed to work along with Press. It provides a CLI interface for Press to communicate with the sites and benches.
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ pre-commit install
|
|||||||
## Learn and connect
|
## Learn and connect
|
||||||
|
|
||||||
- [Telegram Public Group](https://t.me/frappecloud)
|
- [Telegram Public Group](https://t.me/frappecloud)
|
||||||
- [Discuss Forum](https://discuss.framework.jingrow.com/c/frappe-cloud/77)
|
- [Discuss Forum](https://discuss.framework.jingrow.com/c/jingrow-cloud/77)
|
||||||
- [Documentation](https://docs.framework.jingrow.com/cloud)
|
- [Documentation](https://docs.framework.jingrow.com/cloud)
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ users:
|
|||||||
- name: root
|
- name: root
|
||||||
shell: /usr/bin/bash
|
shell: /usr/bin/bash
|
||||||
|
|
||||||
- name: frappe
|
- name: jingrow
|
||||||
gecos: Frappe
|
gecos: Frappe
|
||||||
groups: sudo
|
groups: sudo
|
||||||
lock_passwd: false
|
lock_passwd: false
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
from frappe.tests.utils import FrappeTestCase
|
from jingrow.tests.utils import FrappeTestCase
|
||||||
|
|
||||||
from backbone.hypervisor import Hypervisor
|
from backbone.hypervisor import Hypervisor
|
||||||
|
|
||||||
|
|||||||
52
backbone/vagrant/Vagrantfile
vendored
52
backbone/vagrant/Vagrantfile
vendored
@ -37,8 +37,8 @@ Vagrant.configure("2") do |config|
|
|||||||
# Default Cluster
|
# Default Cluster
|
||||||
|
|
||||||
# Reverse Proxy Server
|
# Reverse Proxy Server
|
||||||
config.vm.define "n1.local.frappe.dev" do |n1|
|
config.vm.define "n1.local.jingrow.dev" do |n1|
|
||||||
n1.vm.hostname = "n1.local.frappe.dev"
|
n1.vm.hostname = "n1.local.jingrow.dev"
|
||||||
n1.vm.network "private_network", ip: "10.0.1.101", netmask: "255.255.0.0"
|
n1.vm.network "private_network", ip: "10.0.1.101", netmask: "255.255.0.0"
|
||||||
n1.vm.network "private_network", ip: "10.1.1.101", netmask: "255.255.0.0"
|
n1.vm.network "private_network", ip: "10.1.1.101", netmask: "255.255.0.0"
|
||||||
n1.vm.provider :libvirt do |libvirt|
|
n1.vm.provider :libvirt do |libvirt|
|
||||||
@ -47,8 +47,8 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Primary App Server
|
# Primary App Server
|
||||||
config.vm.define "f1.local.frappe.dev" do |f1|
|
config.vm.define "f1.local.jingrow.dev" do |f1|
|
||||||
f1.vm.hostname = "f1.local.frappe.dev"
|
f1.vm.hostname = "f1.local.jingrow.dev"
|
||||||
f1.vm.network "private_network", ip: "10.0.2.101", netmask: "255.255.0.0"
|
f1.vm.network "private_network", ip: "10.0.2.101", netmask: "255.255.0.0"
|
||||||
f1.vm.network "private_network", ip: "10.1.2.101", netmask: "255.255.0.0"
|
f1.vm.network "private_network", ip: "10.1.2.101", netmask: "255.255.0.0"
|
||||||
f1.vm.provider :libvirt do |libvirt|
|
f1.vm.provider :libvirt do |libvirt|
|
||||||
@ -58,8 +58,8 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Replica of f1
|
# Replica of f1
|
||||||
# config.vm.define "f2.local.frappe.dev" do |f2|
|
# config.vm.define "f2.local.jingrow.dev" do |f2|
|
||||||
# f2.vm.hostname = "f2.local.frappe.dev"
|
# f2.vm.hostname = "f2.local.jingrow.dev"
|
||||||
# f2.vm.network "private_network", ip: "10.0.2.102", netmask: "255.255.0.0"
|
# f2.vm.network "private_network", ip: "10.0.2.102", netmask: "255.255.0.0"
|
||||||
# f2.vm.network "private_network", ip: "10.1.2.102", netmask: "255.255.0.0"
|
# f2.vm.network "private_network", ip: "10.1.2.102", netmask: "255.255.0.0"
|
||||||
# f2.vm.provider :libvirt do |libvirt|
|
# f2.vm.provider :libvirt do |libvirt|
|
||||||
@ -69,8 +69,8 @@ Vagrant.configure("2") do |config|
|
|||||||
# end
|
# end
|
||||||
|
|
||||||
# Primary DB Server
|
# Primary DB Server
|
||||||
config.vm.define "m1.local.frappe.dev" do |m1|
|
config.vm.define "m1.local.jingrow.dev" do |m1|
|
||||||
m1.vm.hostname = "m1.local.frappe.dev"
|
m1.vm.hostname = "m1.local.jingrow.dev"
|
||||||
m1.vm.network "private_network", ip: "10.0.3.101", netmask: "255.255.0.0"
|
m1.vm.network "private_network", ip: "10.0.3.101", netmask: "255.255.0.0"
|
||||||
m1.vm.network "private_network", ip: "10.1.3.101", netmask: "255.255.0.0"
|
m1.vm.network "private_network", ip: "10.1.3.101", netmask: "255.255.0.0"
|
||||||
m1.vm.provider :libvirt do |libvirt|
|
m1.vm.provider :libvirt do |libvirt|
|
||||||
@ -80,8 +80,8 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Replica of m1
|
# Replica of m1
|
||||||
# config.vm.define "m2.local.frappe.dev" do |m2|
|
# config.vm.define "m2.local.jingrow.dev" do |m2|
|
||||||
# m2.vm.hostname = "m2.local.frappe.dev"
|
# m2.vm.hostname = "m2.local.jingrow.dev"
|
||||||
# m2.vm.network "private_network", ip: "10.0.3.102", netmask: "255.255.0.0"
|
# m2.vm.network "private_network", ip: "10.0.3.102", netmask: "255.255.0.0"
|
||||||
# m2.vm.network "private_network", ip: "10.1.3.102", netmask: "255.255.0.0"
|
# m2.vm.network "private_network", ip: "10.1.3.102", netmask: "255.255.0.0"
|
||||||
# m2.vm.provider :libvirt do |libvirt|
|
# m2.vm.provider :libvirt do |libvirt|
|
||||||
@ -91,8 +91,8 @@ Vagrant.configure("2") do |config|
|
|||||||
# end
|
# end
|
||||||
|
|
||||||
# # Secondary Cluster
|
# # Secondary Cluster
|
||||||
# config.vm.define "n2.frappe.dev" do |n2|
|
# config.vm.define "n2.jingrow.dev" do |n2|
|
||||||
# n2.vm.hostname = "n2.frappe.dev"
|
# n2.vm.hostname = "n2.jingrow.dev"
|
||||||
# n2.vm.network "private_network", ip: "10.0.1.102", netmask: "255.255.0.0"
|
# n2.vm.network "private_network", ip: "10.0.1.102", netmask: "255.255.0.0"
|
||||||
# n2.vm.network "private_network", ip: "10.1.1.102", netmask: "255.255.0.0"
|
# n2.vm.network "private_network", ip: "10.1.1.102", netmask: "255.255.0.0"
|
||||||
# end
|
# end
|
||||||
@ -100,15 +100,15 @@ Vagrant.configure("2") do |config|
|
|||||||
# Additional Hosts.
|
# Additional Hosts.
|
||||||
|
|
||||||
# Docker Registry
|
# Docker Registry
|
||||||
config.vm.define "registry.local.frappe.dev" do |registry|
|
config.vm.define "registry.local.jingrow.dev" do |registry|
|
||||||
registry.vm.hostname = "registry.local.frappe.dev"
|
registry.vm.hostname = "registry.local.jingrow.dev"
|
||||||
registry.vm.network "private_network", ip: "10.0.4.101", netmask: "255.255.0.0"
|
registry.vm.network "private_network", ip: "10.0.4.101", netmask: "255.255.0.0"
|
||||||
registry.vm.network "private_network", ip: "10.1.4.101", netmask: "255.255.0.0"
|
registry.vm.network "private_network", ip: "10.1.4.101", netmask: "255.255.0.0"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Log Server = ElasticSearch + Logstash + Kibana
|
# Log Server = ElasticSearch + Logstash + Kibana
|
||||||
config.vm.define "log.local.frappe.dev" do |log|
|
config.vm.define "log.local.jingrow.dev" do |log|
|
||||||
log.vm.hostname = "log.local.frappe.dev"
|
log.vm.hostname = "log.local.jingrow.dev"
|
||||||
log.vm.network "private_network", ip: "10.0.4.102", netmask: "255.255.0.0"
|
log.vm.network "private_network", ip: "10.0.4.102", netmask: "255.255.0.0"
|
||||||
log.vm.network "private_network", ip: "10.1.4.102", netmask: "255.255.0.0"
|
log.vm.network "private_network", ip: "10.1.4.102", netmask: "255.255.0.0"
|
||||||
log.vm.provider :libvirt do |libvirt|
|
log.vm.provider :libvirt do |libvirt|
|
||||||
@ -118,8 +118,8 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Uptime Server = Prometheus + Grafana
|
# Uptime Server = Prometheus + Grafana
|
||||||
config.vm.define "monitor.local.frappe.dev" do |monitor|
|
config.vm.define "monitor.local.jingrow.dev" do |monitor|
|
||||||
monitor.vm.hostname = "monitor.local.frappe.dev"
|
monitor.vm.hostname = "monitor.local.jingrow.dev"
|
||||||
monitor.vm.network "private_network", ip: "10.0.4.103", netmask: "255.255.0.0"
|
monitor.vm.network "private_network", ip: "10.0.4.103", netmask: "255.255.0.0"
|
||||||
monitor.vm.network "private_network", ip: "10.1.4.103", netmask: "255.255.0.0"
|
monitor.vm.network "private_network", ip: "10.1.4.103", netmask: "255.255.0.0"
|
||||||
monitor.vm.provider :libvirt do |libvirt|
|
monitor.vm.provider :libvirt do |libvirt|
|
||||||
@ -128,8 +128,8 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Analytics Server = Plausible
|
# Analytics Server = Plausible
|
||||||
# config.vm.define "analytics.local.frappe.dev" do |analytics|
|
# config.vm.define "analytics.local.jingrow.dev" do |analytics|
|
||||||
# analytics.vm.hostname = "analytics.local.frappe.dev"
|
# analytics.vm.hostname = "analytics.local.jingrow.dev"
|
||||||
# analytics.vm.network "private_network", ip: "10.0.4.104", netmask: "255.255.0.0"
|
# analytics.vm.network "private_network", ip: "10.0.4.104", netmask: "255.255.0.0"
|
||||||
# analytics.vm.network "private_network", ip: "10.1.4.104", netmask: "255.255.0.0"
|
# analytics.vm.network "private_network", ip: "10.1.4.104", netmask: "255.255.0.0"
|
||||||
# analytics.vm.provider :libvirt do |libvirt|
|
# analytics.vm.provider :libvirt do |libvirt|
|
||||||
@ -138,8 +138,8 @@ Vagrant.configure("2") do |config|
|
|||||||
# end
|
# end
|
||||||
|
|
||||||
# Trace Server = Sentry
|
# Trace Server = Sentry
|
||||||
config.vm.define "trace.local.frappe.dev" do |trace|
|
config.vm.define "trace.local.jingrow.dev" do |trace|
|
||||||
trace.vm.hostname = "trace.local.frappe.dev"
|
trace.vm.hostname = "trace.local.jingrow.dev"
|
||||||
trace.vm.network "private_network", ip: "10.0.4.105", netmask: "255.255.0.0"
|
trace.vm.network "private_network", ip: "10.0.4.105", netmask: "255.255.0.0"
|
||||||
trace.vm.network "private_network", ip: "10.1.4.105", netmask: "255.255.0.0"
|
trace.vm.network "private_network", ip: "10.1.4.105", netmask: "255.255.0.0"
|
||||||
trace.vm.provider :libvirt do |libvirt|
|
trace.vm.provider :libvirt do |libvirt|
|
||||||
@ -148,16 +148,16 @@ Vagrant.configure("2") do |config|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# config.vm.define "sn1.local.frappe.dev" do |sn1|
|
# config.vm.define "sn1.local.jingrow.dev" do |sn1|
|
||||||
# sn1.vm.box = "scaleway"
|
# sn1.vm.box = "scaleway"
|
||||||
# sn1.vm.hostname = "sn1.local.frappe.dev"
|
# sn1.vm.hostname = "sn1.local.jingrow.dev"
|
||||||
# sn1.vm.network "private_network", ip: "10.2.0.101", netmask: "255.255.0.0"
|
# sn1.vm.network "private_network", ip: "10.2.0.101", netmask: "255.255.0.0"
|
||||||
# sn1.vm.network "private_network", ip: "10.3.0.101", netmask: "255.255.0.0", auto_config: false
|
# sn1.vm.network "private_network", ip: "10.3.0.101", netmask: "255.255.0.0", auto_config: false
|
||||||
# end
|
# end
|
||||||
|
|
||||||
# config.vm.define "sf1.local.frappe.dev" do |sf1|
|
# config.vm.define "sf1.local.jingrow.dev" do |sf1|
|
||||||
# sf1.vm.box = "scaleway"
|
# sf1.vm.box = "scaleway"
|
||||||
# sf1.vm.hostname = "sf1.local.frappe.dev"
|
# sf1.vm.hostname = "sf1.local.jingrow.dev"
|
||||||
# sf1.vm.network "private_network", ip: "10.2.1.101", netmask: "255.255.0.0"
|
# sf1.vm.network "private_network", ip: "10.2.1.101", netmask: "255.255.0.0"
|
||||||
# sf1.vm.network "private_network", ip: "10.3.1.101", netmask: "255.255.0.0", auto_config: false
|
# sf1.vm.network "private_network", ip: "10.3.1.101", netmask: "255.255.0.0", auto_config: false
|
||||||
# sf1.vm.provider :libvirt do |libvirt|
|
# sf1.vm.provider :libvirt do |libvirt|
|
||||||
|
|||||||
@ -30,8 +30,8 @@
|
|||||||
"dayjs": "^1.10.7",
|
"dayjs": "^1.10.7",
|
||||||
"echarts": "^5.4.3",
|
"echarts": "^5.4.3",
|
||||||
"feather-icons": "^4.26.0",
|
"feather-icons": "^4.26.0",
|
||||||
"frappe-charts": "2.0.0-rc22",
|
"jingrow-charts": "2.0.0-rc22",
|
||||||
"frappe-ui": "0.1.168",
|
"jingrow-ui": "0.1.168",
|
||||||
"fuse.js": "6.6.2",
|
"fuse.js": "6.6.2",
|
||||||
"libarchive.js": "^1.3.0",
|
"libarchive.js": "^1.3.0",
|
||||||
"lodash": "^4.17.19",
|
"lodash": "^4.17.19",
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
@import 'frappe-ui/src/style.css';
|
@import 'jingrow-ui/src/style.css';
|
||||||
|
|
||||||
@layer components {
|
@layer components {
|
||||||
/* Works on Firefox */
|
/* Works on Firefox */
|
||||||
|
|||||||
@ -59,10 +59,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { createResource } from 'frappe-ui';
|
import { createResource } from 'jingrow-ui';
|
||||||
import { computed, reactive, ref } from 'vue';
|
import { computed, reactive, ref } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { Checkbox, Textarea } from 'frappe-ui';
|
import { Checkbox, Textarea } from 'jingrow-ui';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
doctype: string;
|
doctype: string;
|
||||||
|
|||||||
@ -58,7 +58,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { createResource } from 'frappe-ui';
|
import { createResource } from 'jingrow-ui';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import dayjs from '../utils/dayjs';
|
import dayjs from '../utils/dayjs';
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Button, Dropdown } from 'frappe-ui';
|
import { Button, Dropdown } from 'jingrow-ui';
|
||||||
import { icon } from '../utils/components';
|
import { icon } from '../utils/components';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -39,7 +39,7 @@ import {
|
|||||||
Dialog,
|
Dialog,
|
||||||
FormControl,
|
FormControl,
|
||||||
getCachedDocumentResource,
|
getCachedDocumentResource,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddTagDialog',
|
name: 'AddTagDialog',
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Button, Dialog, FeatherIcon, ErrorMessage } from 'frappe-ui';
|
import { Button, Dialog, FeatherIcon, ErrorMessage } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -73,7 +73,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { defineAsyncComponent } from 'vue';
|
import { defineAsyncComponent } from 'vue';
|
||||||
import AppSidebarItem from './AppSidebarItem.vue';
|
import AppSidebarItem from './AppSidebarItem.vue';
|
||||||
import { Tooltip } from 'frappe-ui';
|
import { Tooltip } from 'jingrow-ui';
|
||||||
import NavigationItems from './NavigationItems.vue';
|
import NavigationItems from './NavigationItems.vue';
|
||||||
import AppSidebarItemGroup from './AppSidebarItemGroup.vue';
|
import AppSidebarItemGroup from './AppSidebarItemGroup.vue';
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ export default {
|
|||||||
},
|
},
|
||||||
feedback() {
|
feedback() {
|
||||||
window.open(
|
window.open(
|
||||||
'https://jcloud.jingrow.com/frappe-cloud-feedback/new',
|
'https://jcloud.jingrow.com/jingrow-cloud-feedback/new',
|
||||||
'_blank',
|
'_blank',
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -120,7 +120,7 @@ import {
|
|||||||
ComboboxOptions,
|
ComboboxOptions,
|
||||||
} from '@headlessui/vue';
|
} from '@headlessui/vue';
|
||||||
import { ComputedRef, PropType, computed, ref, watch } from 'vue';
|
import { ComputedRef, PropType, computed, ref, watch } from 'vue';
|
||||||
import { Popover } from 'frappe-ui';
|
import { Popover } from 'jingrow-ui';
|
||||||
|
|
||||||
type Option = {
|
type Option = {
|
||||||
label: string;
|
label: string;
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Avatar } from 'frappe-ui';
|
import { Avatar } from 'jingrow-ui';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
users: { type: Array, required: true },
|
users: { type: Array, required: true },
|
||||||
});
|
});
|
||||||
|
|||||||
@ -66,7 +66,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import FileUploader from './FileUploader.vue';
|
import FileUploader from './FileUploader.vue';
|
||||||
import { createResource } from 'frappe-ui';
|
import { createResource } from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -99,7 +99,7 @@ export default {
|
|||||||
key: data.key_id,
|
key: data.key_id,
|
||||||
order_id: data.order_id,
|
order_id: data.order_id,
|
||||||
name: 'Frappe Cloud',
|
name: 'Frappe Cloud',
|
||||||
image: '/assets/press/images/frappe-cloud-logo.png',
|
image: '/assets/press/images/jingrow-cloud-logo.png',
|
||||||
prefill: {
|
prefill: {
|
||||||
email: this.$team.pg.user,
|
email: this.$team.pg.user,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { FormControl } from 'frappe-ui';
|
import { FormControl } from 'jingrow-ui';
|
||||||
import StarRatingInput from './StarRatingInput.vue';
|
import StarRatingInput from './StarRatingInput.vue';
|
||||||
import { DashboardError } from '../utils/error';
|
import { DashboardError } from '../utils/error';
|
||||||
|
|
||||||
|
|||||||
@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { Select, TextInput } from 'frappe-ui';
|
import { Select, TextInput } from 'jingrow-ui';
|
||||||
import GenericList from './GenericList.vue';
|
import GenericList from './GenericList.vue';
|
||||||
import AlertBanner from './AlertBanner.vue';
|
import AlertBanner from './AlertBanner.vue';
|
||||||
|
|
||||||
|
|||||||
@ -79,7 +79,7 @@ import {
|
|||||||
ErrorMessage,
|
ErrorMessage,
|
||||||
FormControl,
|
FormControl,
|
||||||
getCachedDocumentResource,
|
getCachedDocumentResource,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ConfigEditorDialog',
|
name: 'ConfigEditorDialog',
|
||||||
|
|||||||
@ -39,7 +39,7 @@ import {
|
|||||||
ErrorMessage,
|
ErrorMessage,
|
||||||
FormControl,
|
FormControl,
|
||||||
getCachedDocumentResource,
|
getCachedDocumentResource,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EnvironmentVariableEditorDialog',
|
name: 'EnvironmentVariableEditorDialog',
|
||||||
|
|||||||
@ -21,6 +21,6 @@
|
|||||||
<!-- idk what magic is it but if I remove the div datetime components cease to work -->
|
<!-- idk what magic is it but if I remove the div datetime components cease to work -->
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { DatePicker, TabButtons, DateTimePicker } from 'frappe-ui';
|
import { DatePicker, TabButtons, DateTimePicker } from 'jingrow-ui';
|
||||||
import LinkControl from './LinkControl.vue';
|
import LinkControl from './LinkControl.vue';
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { LoadingIndicator } from 'frappe-ui';
|
import { LoadingIndicator } from 'jingrow-ui';
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Dialog } from 'frappe-ui';
|
import { Dialog } from 'jingrow-ui';
|
||||||
import GenericDialogField from './GenericDialogField.vue';
|
import GenericDialogField from './GenericDialogField.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { FormControl } from 'frappe-ui';
|
import { FormControl } from 'jingrow-ui';
|
||||||
import ListSelection from './ListSelection.vue';
|
import ListSelection from './ListSelection.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -54,7 +54,7 @@ import {
|
|||||||
ListHeaderItem,
|
ListHeaderItem,
|
||||||
ListRow,
|
ListRow,
|
||||||
ListSelectBanner,
|
ListSelectBanner,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
import ObjectListCell from './ObjectListCell.vue';
|
import ObjectListCell from './ObjectListCell.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { FormControl, debounce } from 'frappe-ui';
|
import { FormControl, debounce } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'LinkControl',
|
name: 'LinkControl',
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<div v-if="step === 'site-plans'">
|
<div v-if="step === 'site-plans'">
|
||||||
<!-- doing this weird thing because progress with intervals doesn't rerender on moving to new step for some reason -->
|
<!-- doing this weird thing because progress with intervals doesn't rerender on moving to new step for some reason -->
|
||||||
<!-- TODO: fix it in frappe-ui -->
|
<!-- TODO: fix it in jingrow-ui -->
|
||||||
<Progress
|
<Progress
|
||||||
v-if="showSetupSubscription"
|
v-if="showSetupSubscription"
|
||||||
class="my-8"
|
class="my-8"
|
||||||
@ -150,7 +150,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource, Progress } from 'frappe-ui';
|
import { getCachedDocumentResource, Progress } from 'jingrow-ui';
|
||||||
import SitePlansCards from './SitePlansCards.vue';
|
import SitePlansCards from './SitePlansCards.vue';
|
||||||
import { getPlans, getPlan } from '../data/plans';
|
import { getPlans, getPlan } from '../data/plans';
|
||||||
import CardForm from './billing/CardForm.vue';
|
import CardForm from './billing/CardForm.vue';
|
||||||
|
|||||||
@ -181,7 +181,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { TextEditor } from 'frappe-ui';
|
import { TextEditor } from 'jingrow-ui';
|
||||||
import FileUploader from '@/components/FileUploader.vue';
|
import FileUploader from '@/components/FileUploader.vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { getToastErrorMessage } from '../utils/toast';
|
import { getToastErrorMessage } from '../utils/toast';
|
||||||
|
|||||||
@ -110,7 +110,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { FormControl, Tabs, TabList, TabPanel } from 'frappe-ui';
|
import { FormControl, Tabs, TabList, TabPanel } from 'jingrow-ui';
|
||||||
import { DashboardError } from '../utils/error';
|
import { DashboardError } from '../utils/error';
|
||||||
import GitHubAppSelector from './GitHubAppSelector.vue';
|
import GitHubAppSelector from './GitHubAppSelector.vue';
|
||||||
import AlertBanner from './AlertBanner.vue';
|
import AlertBanner from './AlertBanner.vue';
|
||||||
|
|||||||
@ -157,7 +157,7 @@ import {
|
|||||||
TextInput,
|
TextInput,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
ErrorMessage,
|
ErrorMessage,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
|
|
||||||
let subscribed = {};
|
let subscribed = {};
|
||||||
|
|
||||||
|
|||||||
@ -66,7 +66,7 @@
|
|||||||
</component>
|
</component>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Tooltip } from 'frappe-ui';
|
import { Tooltip } from 'jingrow-ui';
|
||||||
import ActionButton from './ActionButton.vue';
|
import ActionButton from './ActionButton.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
</component>
|
</component>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Tooltip, Dialog } from 'frappe-ui';
|
import { Tooltip, Dialog } from 'jingrow-ui';
|
||||||
import DialogWrapper from './DialogWrapper.vue';
|
import DialogWrapper from './DialogWrapper.vue';
|
||||||
import FilterControl from './FilterControl.vue';
|
import FilterControl from './FilterControl.vue';
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import { defineAsyncComponent, h } from 'vue';
|
import { defineAsyncComponent, h } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { confirmDialog, renderDialog } from '../utils/components';
|
import { confirmDialog, renderDialog } from '../utils/components';
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import SiteActionCell from './SiteActionCell.vue';
|
import SiteActionCell from './SiteActionCell.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -62,7 +62,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { defineAsyncComponent } from 'vue';
|
import { defineAsyncComponent } from 'vue';
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import ClickToCopyField from './ClickToCopyField.vue';
|
import ClickToCopyField from './ClickToCopyField.vue';
|
||||||
import ObjectList from './ObjectList.vue';
|
import ObjectList from './ObjectList.vue';
|
||||||
import { date } from '../utils/format';
|
import { date } from '../utils/format';
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Button } from 'frappe-ui';
|
import { Button } from 'jingrow-ui';
|
||||||
import BackupFilesUploader from './BackupFilesUploader.vue';
|
import BackupFilesUploader from './BackupFilesUploader.vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|
||||||
|
|||||||
@ -318,7 +318,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource, Progress, Tooltip } from 'frappe-ui';
|
import { getCachedDocumentResource, Progress, Tooltip } from 'jingrow-ui';
|
||||||
import { h, defineAsyncComponent } from 'vue';
|
import { h, defineAsyncComponent } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import InfoIcon from '~icons/lucide/info';
|
import InfoIcon from '~icons/lucide/info';
|
||||||
|
|||||||
@ -73,7 +73,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import DateTimeControl from './DateTimeControl.vue';
|
import DateTimeControl from './DateTimeControl.vue';
|
||||||
import GenericList from './GenericList.vue';
|
import GenericList from './GenericList.vue';
|
||||||
import dayjs, { dayjsIST } from '../utils/dayjs';
|
import dayjs, { dayjsIST } from '../utils/dayjs';
|
||||||
|
|||||||
@ -76,7 +76,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Tree } from 'frappe-ui';
|
import { Tree } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StorageBreakupChart',
|
name: 'StorageBreakupChart',
|
||||||
|
|||||||
@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Link from './Link.vue';
|
import Link from './Link.vue';
|
||||||
import { Badge, createDocumentResource, createResource } from 'frappe-ui';
|
import { Badge, createDocumentResource, createResource } from 'jingrow-ui';
|
||||||
import { computed, ref } from 'vue';
|
import { computed, ref } from 'vue';
|
||||||
import { getTeam } from '../data/team';
|
import { getTeam } from '../data/team';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|||||||
@ -72,7 +72,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { TextInput } from 'frappe-ui';
|
import { TextInput } from 'jingrow-ui';
|
||||||
import { switchToTeam } from '../data/team';
|
import { switchToTeam } from '../data/team';
|
||||||
import LinkControl from './LinkControl.vue';
|
import LinkControl from './LinkControl.vue';
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
</FTabs>
|
</FTabs>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Tabs } from 'frappe-ui';
|
import { Tabs } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'TabsWithRouter',
|
name: 'TabsWithRouter',
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Avatar } from 'frappe-ui';
|
import { Avatar } from 'jingrow-ui';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
avatarImage: String,
|
avatarImage: String,
|
||||||
fullName: String,
|
fullName: String,
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import CardForm from './CardForm.vue';
|
import CardForm from './CardForm.vue';
|
||||||
import { Dialog, FeatherIcon } from 'frappe-ui';
|
import { Dialog, FeatherIcon } from 'jingrow-ui';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
showMessage: {
|
showMessage: {
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { FormControl, ErrorMessage } from 'frappe-ui';
|
import { FormControl, ErrorMessage } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddExchangeRate',
|
name: 'AddExchangeRate',
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import PrepaidCreditsForm from './PrepaidCreditsForm.vue';
|
import PrepaidCreditsForm from './PrepaidCreditsForm.vue';
|
||||||
import { Dialog, FeatherIcon } from 'frappe-ui';
|
import { Dialog, FeatherIcon } from 'jingrow-ui';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
showMessage: {
|
showMessage: {
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import NewAddressForm from './NewAddressForm.vue';
|
import NewAddressForm from './NewAddressForm.vue';
|
||||||
import { FormControl, ErrorMessage, Button, createResource } from 'frappe-ui';
|
import { FormControl, ErrorMessage, Button, createResource } from 'jingrow-ui';
|
||||||
import { reactive, ref, inject } from 'vue';
|
import { reactive, ref, inject } from 'vue';
|
||||||
|
|
||||||
const emit = defineEmits(['success']);
|
const emit = defineEmits(['success']);
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import BillingDetails from './BillingDetails.vue';
|
import BillingDetails from './BillingDetails.vue';
|
||||||
import { FeatherIcon, Dialog } from 'frappe-ui';
|
import { FeatherIcon, Dialog } from 'jingrow-ui';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import AddPrepaidCreditsDialog from './AddPrepaidCreditsDialog.vue';
|
import AddPrepaidCreditsDialog from './AddPrepaidCreditsDialog.vue';
|
||||||
import UpcomingInvoiceDialog from './UpcomingInvoiceDialog.vue';
|
import UpcomingInvoiceDialog from './UpcomingInvoiceDialog.vue';
|
||||||
import { Button, createResource } from 'frappe-ui';
|
import { Button, createResource } from 'jingrow-ui';
|
||||||
import { ref, computed, inject } from 'vue';
|
import { ref, computed, inject } from 'vue';
|
||||||
import { confirmDialog } from '../../utils/components';
|
import { confirmDialog } from '../../utils/components';
|
||||||
import router from '../../router';
|
import router from '../../router';
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, Switch, Button, ErrorMessage, FormControl } from 'frappe-ui';
|
import { Dialog, Switch, Button, ErrorMessage, FormControl } from 'jingrow-ui';
|
||||||
import { ref, inject } from 'vue';
|
import { ref, inject } from 'vue';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -38,7 +38,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Button, ErrorMessage, FeatherIcon, createResource } from 'frappe-ui';
|
import { Button, ErrorMessage, FeatherIcon, createResource } from 'jingrow-ui';
|
||||||
import { ref, onMounted, onBeforeUnmount, inject } from 'vue';
|
import { ref, onMounted, onBeforeUnmount, inject } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { DashboardError } from '../../utils/error';
|
import { DashboardError } from '../../utils/error';
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Button, ErrorMessage, Spinner, createResource } from 'frappe-ui';
|
import { Button, ErrorMessage, Spinner, createResource } from 'jingrow-ui';
|
||||||
import { loadStripe } from '@stripe/stripe-js';
|
import { loadStripe } from '@stripe/stripe-js';
|
||||||
import { ref, nextTick, inject } from 'vue';
|
import { ref, nextTick, inject } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|||||||
@ -87,7 +87,7 @@ import {
|
|||||||
Spinner,
|
Spinner,
|
||||||
ErrorMessage,
|
ErrorMessage,
|
||||||
createResource,
|
createResource,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
import { currency } from '../../utils/format';
|
import { currency } from '../../utils/format';
|
||||||
import { loadStripe } from '@stripe/stripe-js';
|
import { loadStripe } from '@stripe/stripe-js';
|
||||||
import { ref, reactive, computed, inject, onMounted } from 'vue';
|
import { ref, reactive, computed, inject, onMounted } from 'vue';
|
||||||
|
|||||||
@ -81,7 +81,7 @@ import {
|
|||||||
Button,
|
Button,
|
||||||
FeatherIcon,
|
FeatherIcon,
|
||||||
createResource,
|
createResource,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
import { cardBrandIcon, confirmDialog } from '../../utils/components';
|
import { cardBrandIcon, confirmDialog } from '../../utils/components';
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Button, FeatherIcon } from 'frappe-ui';
|
import { Button, FeatherIcon } from 'jingrow-ui';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
label: String,
|
label: String,
|
||||||
active: Boolean,
|
active: Boolean,
|
||||||
|
|||||||
@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { FormControl, ErrorMessage, createResource } from 'frappe-ui';
|
import { FormControl, ErrorMessage, createResource } from 'jingrow-ui';
|
||||||
import { ref, computed, inject, watch } from 'vue';
|
import { ref, computed, inject, watch } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { DashboardError } from '../../utils/error';
|
import { DashboardError } from '../../utils/error';
|
||||||
|
|||||||
@ -196,7 +196,7 @@ import BudgetAlertDialog from './BudgetAlertDialog.vue';
|
|||||||
import AddPrepaidCreditsDialog from './AddPrepaidCreditsDialog.vue';
|
import AddPrepaidCreditsDialog from './AddPrepaidCreditsDialog.vue';
|
||||||
import AddCardDialog from './AddCardDialog.vue';
|
import AddCardDialog from './AddCardDialog.vue';
|
||||||
import ChangeCardDialog from './ChangeCardDialog.vue';
|
import ChangeCardDialog from './ChangeCardDialog.vue';
|
||||||
import { Dropdown, Button, FeatherIcon, createResource } from 'frappe-ui';
|
import { Dropdown, Button, FeatherIcon, createResource } from 'jingrow-ui';
|
||||||
import {
|
import {
|
||||||
cardBrandIcon,
|
cardBrandIcon,
|
||||||
confirmDialog,
|
confirmDialog,
|
||||||
|
|||||||
@ -133,7 +133,7 @@ import RazorpayLogo from '../../logo/RazorpayLogo.vue';
|
|||||||
import PayPalLogo from '../../logo/PayPalLogo.vue';
|
import PayPalLogo from '../../logo/PayPalLogo.vue';
|
||||||
import StripeLogo from '../../logo/StripeLogo.vue';
|
import StripeLogo from '../../logo/StripeLogo.vue';
|
||||||
import BuyPrepaidCreditsMpesa from './mpesa/BuyPrepaidCreditsMpesa.vue';
|
import BuyPrepaidCreditsMpesa from './mpesa/BuyPrepaidCreditsMpesa.vue';
|
||||||
import { FormControl, Button, createResource } from 'frappe-ui';
|
import { FormControl, Button, createResource } from 'jingrow-ui';
|
||||||
import { ref, computed, inject, watch, onMounted } from 'vue';
|
import { ref, computed, inject, watch, onMounted } from 'vue';
|
||||||
|
|
||||||
const emit = defineEmits(['success']);
|
const emit = defineEmits(['success']);
|
||||||
|
|||||||
@ -97,7 +97,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { DashboardError } from '../../../utils/error';
|
import { DashboardError } from '../../../utils/error';
|
||||||
import { ErrorMessage } from 'frappe-ui';
|
import { ErrorMessage } from 'jingrow-ui';
|
||||||
export default {
|
export default {
|
||||||
name: 'AddMpesaCredentials',
|
name: 'AddMpesaCredentials',
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -70,7 +70,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { DashboardError } from '../../../utils/error';
|
import { DashboardError } from '../../../utils/error';
|
||||||
import { frappeRequest, ErrorMessage } from 'frappe-ui';
|
import { frappeRequest, ErrorMessage } from 'jingrow-ui';
|
||||||
export default {
|
export default {
|
||||||
name: 'BuyPrepaidCreditsMpesa',
|
name: 'BuyPrepaidCreditsMpesa',
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -98,7 +98,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { frappeRequest } from 'frappe-ui';
|
import { frappeRequest } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PartnerPaymentPayout',
|
name: 'PartnerPaymentPayout',
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import {
|
|||||||
watch,
|
watch,
|
||||||
nextTick,
|
nextTick,
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import useAxisChartOptions from 'frappe-ui/src/components/Charts/axisChartOptions';
|
import useAxisChartOptions from 'jingrow-ui/src/components/Charts/axisChartOptions';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
|
|||||||
@ -92,7 +92,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Dialog } from 'frappe-ui';
|
import { Dialog } from 'jingrow-ui';
|
||||||
import { date } from '../../../utils/format';
|
import { date } from '../../../utils/format';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -52,7 +52,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { FormControl } from 'frappe-ui';
|
import { FormControl } from 'jingrow-ui';
|
||||||
import ObjectList from '../../ObjectList.vue';
|
import ObjectList from '../../ObjectList.vue';
|
||||||
import { icon } from '../../../utils/components';
|
import { icon } from '../../../utils/components';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Badge } from 'frappe-ui';
|
import { Badge } from 'jingrow-ui';
|
||||||
import ObjectList from '../../ObjectList.vue';
|
import ObjectList from '../../ObjectList.vue';
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Badge as FrappeUIBadge } from 'frappe-ui';
|
import { Badge as FrappeUIBadge } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Badge',
|
name: 'Badge',
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { LoadingText } from 'frappe-ui';
|
import { LoadingText } from 'jingrow-ui';
|
||||||
export default {
|
export default {
|
||||||
name: 'Card',
|
name: 'Card',
|
||||||
props: ['title', 'subtitle', 'loading', 'stopOverflow'],
|
props: ['title', 'subtitle', 'loading', 'stopOverflow'],
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import {
|
|||||||
ErrorMessage,
|
ErrorMessage,
|
||||||
Autocomplete,
|
Autocomplete,
|
||||||
Spinner,
|
Spinner,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
import outsideClickDirective from './outsideClickDirective';
|
import outsideClickDirective from './outsideClickDirective';
|
||||||
|
|
||||||
let components = import.meta.glob('./*.vue', { eager: true }); // To get each component inside this folder
|
let components = import.meta.glob('./*.vue', { eager: true }); // To get each component inside this folder
|
||||||
|
|||||||
@ -144,7 +144,7 @@ import {
|
|||||||
TextInput,
|
TextInput,
|
||||||
Badge,
|
Badge,
|
||||||
Button,
|
Button,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { getToastErrorMessage } from '../../utils/toast';
|
import { getToastErrorMessage } from '../../utils/toast';
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddRegionDialog',
|
name: 'AddRegionDialog',
|
||||||
|
|||||||
@ -45,7 +45,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { createResource } from 'frappe-ui';
|
import { createResource } from 'jingrow-ui';
|
||||||
import { defineProps, h, ref } from 'vue';
|
import { defineProps, h, ref } from 'vue';
|
||||||
import LucideSparkleIcon from '~icons/lucide/sparkle';
|
import LucideSparkleIcon from '~icons/lucide/sparkle';
|
||||||
import ObjectList from '../ObjectList.vue';
|
import ObjectList from '../ObjectList.vue';
|
||||||
|
|||||||
@ -66,7 +66,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DependencyEditorDialog',
|
name: 'DependencyEditorDialog',
|
||||||
@ -126,7 +126,7 @@ export default {
|
|||||||
filters: {
|
filters: {
|
||||||
parenttype: 'Bench Dependency',
|
parenttype: 'Bench Dependency',
|
||||||
parent: this.dependency.dependency,
|
parent: this.dependency.dependency,
|
||||||
supported_frappe_version: this.group.version,
|
supported_jingrow_version: this.group.version,
|
||||||
},
|
},
|
||||||
transform(data) {
|
transform(data) {
|
||||||
return data.map((d) => d.version);
|
return data.map((d) => d.version);
|
||||||
|
|||||||
@ -109,7 +109,7 @@ import {
|
|||||||
FeatherIcon,
|
FeatherIcon,
|
||||||
FileUploader,
|
FileUploader,
|
||||||
FormControl,
|
FormControl,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PatchAppDialog',
|
name: 'PatchAppDialog',
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { confirmDialog } from '../../utils/components';
|
import { confirmDialog } from '../../utils/components';
|
||||||
import router from '../../router';
|
import router from '../../router';
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import ReleaseGroupActionCell from './ReleaseGroupActionCell.vue';
|
import ReleaseGroupActionCell from './ReleaseGroupActionCell.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -125,7 +125,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['bench', 'releaseGroup'],
|
props: ['bench', 'releaseGroup'],
|
||||||
|
|||||||
@ -123,7 +123,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { Checkbox, getCachedDocumentResource } from 'frappe-ui';
|
import { Checkbox, getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import CommitChooser from '@/components/utils/CommitChooser.vue';
|
import CommitChooser from '@/components/utils/CommitChooser.vue';
|
||||||
import CommitTag from '@/components/utils/CommitTag.vue';
|
import CommitTag from '@/components/utils/CommitTag.vue';
|
||||||
import GenericList from '../../components/GenericList.vue';
|
import GenericList from '../../components/GenericList.vue';
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCachedDocumentResource } from 'frappe-ui';
|
import { getCachedDocumentResource } from 'jingrow-ui';
|
||||||
import ObjectList from '../ObjectList.vue';
|
import ObjectList from '../ObjectList.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Button, ErrorMessage, FeatherIcon, createResource } from 'frappe-ui';
|
import { Button, ErrorMessage, FeatherIcon, createResource } from 'jingrow-ui';
|
||||||
import { ref, onMounted, onBeforeUnmount, inject } from 'vue';
|
import { ref, onMounted, onBeforeUnmount, inject } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { DashboardError } from '../../utils/error';
|
import { DashboardError } from '../../utils/error';
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Button, ErrorMessage, Spinner, createResource } from 'frappe-ui';
|
import { Button, ErrorMessage, Spinner, createResource } from 'jingrow-ui';
|
||||||
import { loadStripe } from '@stripe/stripe-js';
|
import { loadStripe } from '@stripe/stripe-js';
|
||||||
import { ref, nextTick, inject } from 'vue';
|
import { ref, nextTick, inject } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, FormControl, createResource } from 'frappe-ui';
|
import { Dialog, FormControl, createResource } from 'jingrow-ui';
|
||||||
import { defineEmits, ref } from 'vue';
|
import { defineEmits, ref } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
// import UserAvatar from '@/components/UserAvatar.vue'
|
// import UserAvatar from '@/components/UserAvatar.vue'
|
||||||
// import AttachmentItem from '@/components/AttachmentItem.vue'
|
// import AttachmentItem from '@/components/AttachmentItem.vue'
|
||||||
import { Tooltip } from 'frappe-ui';
|
import { Tooltip } from 'jingrow-ui';
|
||||||
import { timeAgo } from '../../utils/format';
|
import { timeAgo } from '../../utils/format';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
activity: Object,
|
activity: Object,
|
||||||
|
|||||||
@ -168,7 +168,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { createResource, Tooltip, Button, FeatherIcon, call } from 'frappe-ui';
|
import { createResource, Tooltip, Button, FeatherIcon, call } from 'jingrow-ui';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import DotIcon from '../icons/DotIcon.vue';
|
import DotIcon from '../icons/DotIcon.vue';
|
||||||
import SelectIcon from '../icons/SelectIcon.vue';
|
import SelectIcon from '../icons/SelectIcon.vue';
|
||||||
@ -273,7 +273,7 @@ async function saveComment() {
|
|||||||
if (!newComment.value) {
|
if (!newComment.value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let comment = await call('frappe.desk.form.utils.add_comment', {
|
let comment = await call('jingrow.desk.form.utils.add_comment', {
|
||||||
reference_doctype: 'Partner Lead',
|
reference_doctype: 'Partner Lead',
|
||||||
reference_name: route.params.leadId,
|
reference_name: route.params.leadId,
|
||||||
content: newComment.value,
|
content: newComment.value,
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, createResource } from 'frappe-ui';
|
import { Dialog, createResource } from 'jingrow-ui';
|
||||||
import LeadDetailsForm from './LeadDetailsForm.vue';
|
import LeadDetailsForm from './LeadDetailsForm.vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { reactive } from 'vue';
|
import { reactive } from 'vue';
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { FormControl, createResource } from 'frappe-ui';
|
import { FormControl, createResource } from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { computed, ref } from 'vue';
|
import { computed, ref } from 'vue';
|
||||||
import { DashboardError } from '../../utils/error';
|
import { DashboardError } from '../../utils/error';
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import ObjectList from '../ObjectList.vue';
|
|||||||
import UpdateFollowupDialog from './UpdateFollowupDialog.vue';
|
import UpdateFollowupDialog from './UpdateFollowupDialog.vue';
|
||||||
import { confirmDialog, renderDialog } from '../../utils/components';
|
import { confirmDialog, renderDialog } from '../../utils/components';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { createResource } from 'frappe-ui';
|
import { createResource } from 'jingrow-ui';
|
||||||
import { date } from '../../utils/format';
|
import { date } from '../../utils/format';
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|||||||
@ -51,11 +51,11 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineEmits, ref } from 'vue';
|
import { defineEmits, ref } from 'vue';
|
||||||
import { createResource, frappeRequest, debounce } from 'frappe-ui';
|
import { createResource, frappeRequest, debounce } from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|
||||||
const courseTypes = [
|
const courseTypes = [
|
||||||
{ label: 'Framework', value: 'frappe-developer-certification' },
|
{ label: 'Framework', value: 'jingrow-developer-certification' },
|
||||||
{ label: 'ERPNext', value: 'erpnext-distribution' },
|
{ label: 'ERPNext', value: 'erpnext-distribution' },
|
||||||
];
|
];
|
||||||
const show = ref(true);
|
const show = ref(true);
|
||||||
|
|||||||
@ -53,7 +53,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed, defineEmits, defineProps } from 'vue';
|
import { ref, computed, defineEmits, defineProps } from 'vue';
|
||||||
import { TextEditor, TextEditorFixedMenu, TextEditorContent } from 'frappe-ui';
|
import { TextEditor, TextEditorFixedMenu, TextEditorContent } from 'jingrow-ui';
|
||||||
|
|
||||||
const commentEditor = ref('');
|
const commentEditor = ref('');
|
||||||
const editor = computed(() => {
|
const editor = computed(() => {
|
||||||
|
|||||||
@ -38,7 +38,7 @@ import {
|
|||||||
FormControl,
|
FormControl,
|
||||||
createResource,
|
createResource,
|
||||||
createListResource,
|
createListResource,
|
||||||
} from 'frappe-ui';
|
} from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { computed, ref } from 'vue';
|
import { computed, ref } from 'vue';
|
||||||
import { DashboardError } from '../../utils/error';
|
import { DashboardError } from '../../utils/error';
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { FeatherIcon, Tooltip, Badge, Button } from 'frappe-ui';
|
import { FeatherIcon, Tooltip, Badge, Button } from 'jingrow-ui';
|
||||||
import ObjectList from '../ObjectList.vue';
|
import ObjectList from '../ObjectList.vue';
|
||||||
import Clock from '~icons/lucide/clock';
|
import Clock from '~icons/lucide/clock';
|
||||||
export default {
|
export default {
|
||||||
@ -42,12 +42,12 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Frappe Approval',
|
label: 'Frappe Approval',
|
||||||
fieldname: 'approved_by_frappe',
|
fieldname: 'approved_by_jingrow',
|
||||||
type: 'Component',
|
type: 'Component',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 0.6,
|
width: 0.6,
|
||||||
component({ row }) {
|
component({ row }) {
|
||||||
if (row.approved_by_frappe) {
|
if (row.approved_by_jingrow) {
|
||||||
return h(
|
return h(
|
||||||
Tooltip,
|
Tooltip,
|
||||||
{
|
{
|
||||||
@ -133,7 +133,7 @@ export default {
|
|||||||
});
|
});
|
||||||
} else if (
|
} else if (
|
||||||
row.status === 'Pending' &&
|
row.status === 'Pending' &&
|
||||||
row.approved_by_frappe === 0
|
row.approved_by_jingrow === 0
|
||||||
) {
|
) {
|
||||||
return h(Badge, {
|
return h(Badge, {
|
||||||
label: "Waiting for Frappe's approval",
|
label: "Waiting for Frappe's approval",
|
||||||
|
|||||||
@ -52,12 +52,12 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineEmits, onMounted, ref } from 'vue';
|
import { defineEmits, onMounted, ref } from 'vue';
|
||||||
import { createResource } from 'frappe-ui';
|
import { createResource } from 'jingrow-ui';
|
||||||
import { getTeam } from '../../data/team';
|
import { getTeam } from '../../data/team';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|
||||||
const courseTypes = [
|
const courseTypes = [
|
||||||
{ label: 'Framework', value: 'frappe-developer-certification' },
|
{ label: 'Framework', value: 'jingrow-developer-certification' },
|
||||||
{ label: 'ERPNext', value: 'erpnext-distribution' },
|
{ label: 'ERPNext', value: 'erpnext-distribution' },
|
||||||
];
|
];
|
||||||
const show = ref(true);
|
const show = ref(true);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { h } from 'vue';
|
import { h } from 'vue';
|
||||||
import { FeatherIcon, Tooltip } from 'frappe-ui';
|
import { FeatherIcon, Tooltip } from 'jingrow-ui';
|
||||||
import { icon, renderDialog } from '../../utils/components';
|
import { icon, renderDialog } from '../../utils/components';
|
||||||
import ObjectList from '../ObjectList.vue';
|
import ObjectList from '../ObjectList.vue';
|
||||||
import PartnerCertificateRequest from './PartnerCertificateRequest.vue';
|
import PartnerCertificateRequest from './PartnerCertificateRequest.vue';
|
||||||
@ -58,7 +58,7 @@ export default {
|
|||||||
label: 'Course',
|
label: 'Course',
|
||||||
fieldname: 'course',
|
fieldname: 'course',
|
||||||
format(value) {
|
format(value) {
|
||||||
return value == 'frappe-developer-certification'
|
return value == 'jingrow-developer-certification'
|
||||||
? 'Framework'
|
? 'Framework'
|
||||||
: 'ERPNext';
|
: 'ERPNext';
|
||||||
},
|
},
|
||||||
|
|||||||
@ -86,7 +86,7 @@ import BuyPartnerCreditsStripe from './BuyPartnerCreditsStripe.vue';
|
|||||||
import BuyPartnerCreditsRazorpay from './BuyPartnerCreditsRazorpay.vue';
|
import BuyPartnerCreditsRazorpay from './BuyPartnerCreditsRazorpay.vue';
|
||||||
import RazorpayLogo from '../../logo/RazorpayLogo.vue';
|
import RazorpayLogo from '../../logo/RazorpayLogo.vue';
|
||||||
import StripeLogo from '../../logo/StripeLogo.vue';
|
import StripeLogo from '../../logo/StripeLogo.vue';
|
||||||
import { FormControl, Button, createDocumentResource } from 'frappe-ui';
|
import { FormControl, Button, createDocumentResource } from 'jingrow-ui';
|
||||||
import { ref, computed, inject, defineEmits } from 'vue';
|
import { ref, computed, inject, defineEmits } from 'vue';
|
||||||
|
|
||||||
const emit = defineEmits(['success']);
|
const emit = defineEmits(['success']);
|
||||||
|
|||||||
@ -86,7 +86,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import PartnerCustomerInvoices from './PartnerCustomerInvoices.vue';
|
import PartnerCustomerInvoices from './PartnerCustomerInvoices.vue';
|
||||||
import ObjectList from '../ObjectList.vue';
|
import ObjectList from '../ObjectList.vue';
|
||||||
import { Dialog, ErrorMessage } from 'frappe-ui';
|
import { Dialog, ErrorMessage } from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { userCurrency } from '../../utils/format';
|
import { userCurrency } from '../../utils/format';
|
||||||
import PartnerApprovalRequests from './PartnerApprovalRequests.vue';
|
import PartnerApprovalRequests from './PartnerApprovalRequests.vue';
|
||||||
|
|||||||
@ -85,7 +85,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { inject, computed } from 'vue';
|
import { inject, computed } from 'vue';
|
||||||
import { createResource, NumberChart, AxisChart, DonutChart } from 'frappe-ui';
|
import { createResource, NumberChart, AxisChart, DonutChart } from 'jingrow-ui';
|
||||||
const team = inject('team');
|
const team = inject('team');
|
||||||
|
|
||||||
const partnerDetails = createResource({
|
const partnerDetails = createResource({
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user