update frappe - jingrow

This commit is contained in:
jingrow 2025-12-23 19:56:26 +08:00
parent 2033661f3d
commit 65265b0ace
1534 changed files with 12854 additions and 12854 deletions

View File

@ -200,7 +200,7 @@
"frappeclient", "frappeclient",
"frappehr", "frappehr",
"Frappeio", "Frappeio",
"frappeui", "jingrowui",
"fremovexattr", "fremovexattr",
"fsetxattr", "fsetxattr",
"fstype", "fstype",

View File

@ -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

View File

@ -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
View File

@ -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

View File

@ -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:

View File

@ -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**
[![codecov](https://codecov.io/gh/frappe/press/branch/master/graph/badge.svg?token=0puvH0jUx9)](https://codecov.io/gh/frappe/press) [![codecov](https://codecov.io/gh/jingrow/press/branch/master/graph/badge.svg?token=0puvH0jUx9)](https://codecov.io/gh/jingrow/press)
[![unittests](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml/badge.svg)](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml) [![unittests](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml/badge.svg)](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/>

View File

@ -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

View File

@ -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

View File

@ -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|

View File

@ -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",

View File

@ -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 */

View File

@ -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;

View File

@ -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';

View File

@ -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 {

View File

@ -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',

View File

@ -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: {

View File

@ -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',
); );
}, },

View File

@ -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;

View File

@ -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 },
}); });

View File

@ -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 {

View File

@ -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,
}, },

View File

@ -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';

View File

@ -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';

View File

@ -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',

View File

@ -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',

View File

@ -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>

View File

@ -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({

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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',

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -157,7 +157,7 @@ import {
TextInput, TextInput,
Tooltip, Tooltip,
ErrorMessage, ErrorMessage,
} from 'frappe-ui'; } from 'jingrow-ui';
let subscribed = {}; let subscribed = {};

View File

@ -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 {

View File

@ -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';

View File

@ -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';

View File

@ -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 {

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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',

View File

@ -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';

View File

@ -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';

View File

@ -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',

View File

@ -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,

View File

@ -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: {

View File

@ -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',

View File

@ -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: {

View File

@ -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']);

View File

@ -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({

View File

@ -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';

View File

@ -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({

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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,

View File

@ -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';

View File

@ -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,

View File

@ -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']);

View File

@ -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() {

View File

@ -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: {

View File

@ -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',

View File

@ -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: {

View File

@ -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 {

View File

@ -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';

View File

@ -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';

View File

@ -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',

View File

@ -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'],

View File

@ -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

View File

@ -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';

View File

@ -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',

View File

@ -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';

View File

@ -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);

View File

@ -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',

View File

@ -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';

View File

@ -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 {

View File

@ -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'],

View File

@ -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';

View File

@ -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 {

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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,

View File

@ -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,

View File

@ -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';

View File

@ -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';

View File

@ -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();

View File

@ -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);

View File

@ -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(() => {

View File

@ -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';

View File

@ -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",

View File

@ -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);

View File

@ -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';
}, },

View File

@ -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']);

View File

@ -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';

View File

@ -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