1
0
forked from test/crm

基础替换完成

This commit is contained in:
jingrow 2025-10-23 18:27:04 +08:00
parent e6400c939b
commit a607d41366
17 changed files with 18 additions and 294 deletions

View File

@ -22,7 +22,7 @@ git config user.name "jingrow-pr-bot"
echo "Setting the correct git remote..."
# Here, the git remote is a local file path by default. Let's change it to the upstream repo.
git remote set-url upstream https://github.com/jingrow/crm.git
git remote set-url upstream http://git.jingrow.com/jingrow/crm.git
echo "Creating a new branch..."
isodate=$(date -u +"%Y-%m-%d")

View File

@ -39,7 +39,7 @@ jobs:
- name: Set Branch
run: |
export APPS_JSON='[{"url": "https://github.com/${{ github.repository }}","branch": "${{ github.ref_name }}"}]'
export APPS_JSON='[{"url": "http://git.jingrow.com/${{ github.repository }}","branch": "${{ github.ref_name }}"}]'
echo "APPS_JSON_BASE64=$(echo $APPS_JSON | base64 -w 0)" >> $GITHUB_ENV
echo "FRAPPE_BRANCH=${{ github.ref_type == 'tag' || github.ref_name == 'main' && 'version-15' || 'develop' }}" >> $GITHUB_ENV

2
.gitmodules vendored
View File

@ -1,3 +1,3 @@
[submodule "jingrow-ui"]
path = jingrow-ui
url = https://github.com/jingrow/jingrow-ui
url = http://git.jingrow.com/jingrow/jingrow-ui

203
README.md
View File

@ -1,203 +0,0 @@
<div align="center" markdown="1">
<a href="https://framework.jingrow.com/products/crm">
<img src=".github/logo.svg" height="80" alt="Jingrow CRM Logo">
</a>
<h1>Jingrow CRM</h1>
**Simplify Sales, Amplify Relationships**
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/jingrow/crm)](https://github.com/jingrow/crm/releases)
<div>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/screenshots/FrappeCRMHeroImage.png">
<img width="1402" alt="Jingrow CRM Hero Image" src=".github/screenshots/FrappeCRMHeroImage.png">
</picture>
</div>
[Live Demo](https://frappecrm-demo.jingrow.cloud/api/method/crm.api.demo.login) - [Website](https://framework.jingrow.com/crm) - [Documentation](https://docs.jingrow.com/crm)
</div>
## Jingrow CRM
Jingrow CRM is a simple, affordable, open-source CRM tool designed for modern sales teams with unlimited users. Jingrow CRM is crafted for providing a great user experience, packed with features for core CRM activities helping you build strong customer relationships while keeping things clean and organised.
### Motivation
The motivation behind building Jingrow CRM stems from the need for a simple, customizable, and open-source solution tailored to modern business needs. Many existing CRMs are either too complex, overly generic, or locked behind steep pricing models that hinder accessibility and flexibility. Jingrow CRM was designed to bridge this gap, offering a tool that empowers businesses to manage their customer relationships seamlessly while being easy to adapt to specific workflows. Built on the Jingrow framework, it prioritizes usability, extensibility, and affordability, making it an ideal choice for growing teams and organizations looking for a CRM that aligns with their unique processes.
### Key Features
- **User-Friendly and Flexible:** A simple, intuitive interface thats easy to navigate and highly customizable, enabling teams to adapt it to their specific processes effortlessly.
- **All-in-One Lead/Deal Page:** Consolidate all essential actions and details—like activities, comments, notes, tasks, and more—into a single page for a seamless workflow experience.
- **Kanban View:** Manage leads and deals visually with a drag-and-drop Kanban board, offering clarity and efficiency in tracking progress across stages.
- **Custom Views:** Design personalized views to organize and display leads and deals using custom filters, sorting, and columns, ensuring quick access to the most relevant information.
<details>
<summary>Screenshots</summary>
<div>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/screenshots/LeadList.png">
<img width="1402" alt="Lead List" src=".github/screenshots/LeadList.png">
</picture>
</div>
<div>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/screenshots/LeadPage.png">
<img width="1402" alt="Lead Page" src=".github/screenshots/LeadPage.png">
</picture>
</div>
<div>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/screenshots/EmailTemplate.png">
<img width="1402" alt="Email Template" src=".github/screenshots/EmailTemplate.png">
</picture>
</div>
<div>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/screenshots/CallUI.png">
<img width="1402" alt="Call UI" src=".github/screenshots/CallUI.png">
</picture>
</div>
<div>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/screenshots/CallLog.png">
<img width="1402" alt="Call Log" src=".github/screenshots/CallLog.png">
</picture>
</div>
</details>
### Integrations
- **Twilio:** Integrate Twilio to make and receive calls from the CRM. You can also record calls. It is a built-in integration.
- **Exotel:** Integrate Exotel to make and receive calls via agents mobile phone from the CRM. You can also record calls. It is a built-in integration.
- **WhatsApp:** Integrate WhatsApp to send and receive messages from the CRM. [Jingrow WhatsApp](https://github.com/shridarpatil/jingrow_whatsapp) is used for this integration.
- **ERPNext:** Integrate with [ERPNext](https://erpnext.com) to extend the CRM capabilities to include invoicing, accounting, and more.
### Under the Hood
- [Jingrow Framework](https://github.com/jingrow/jingrow): A full-stack web application framework.
- [Jingrow UI](https://github.com/jingrow/jingrow-ui): A Vue-based UI library, to provide a modern user interface.
### Compatibility
This app is compatible with the following versions of Jingrow and ERPNext:
| CRM branch | Stability | Jingrow branch | ERPNext branch |
| :-------------------- | :-------- | :------------------- | :------------------- |
| main - v1.x | stable | v15.x | v15.x |
| develop - future/v2.x | unstable | develop - future/v16 | develop - future/v16 |
## Getting Started (Production)
### Managed Hosting
Get started with your personal or business site with a few clicks on Jingrow Cloud - our official hosting service.
<div>
<a href="https://jcloud.jingrow.com/crm/signup" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://framework.jingrow.com/files/try-on-fc-white.png">
<img src="https://framework.jingrow.com/files/try-on-fc-black.png" alt="Try on Jingrow Cloud" height="28" />
</picture>
</a>
</div>
### Self Hosting
Follow these steps to set up Jingrow CRM in production:
**Step 1**: Download the easy install script
```bash
wget https://framework.jingrow.com/easy-install.py
```
**Step 2**: Run the deployment command
```bash
python3 ./easy-install.py deploy \
--project=crm_prod_setup \
--email=email.example.com \
--image=ghcr.io/jingrow/crm \
--version=stable \
--app=crm \
--sitename subdomain.domain.tld
```
Replace the following parameters with your values:
- `email.example.com`: Your email address
- `subdomain.domain.tld`: Your domain name where CRM will be hosted
The script will set up a production-ready instance of Jingrow CRM with all the necessary configurations in about 5 minutes.
## Getting Started (Development)
### Local Setup
1. [Setup Bench](https://docs.jingrow.com/framework/user/en/installation).
1. In the jingrow-bench directory, run `bench start` and keep it running.
1. Open a new terminal session and cd into `jingrow-bench` directory and run following commands:
```sh
$ bench get-app crm
$ bench new-site sitename.localhost --install-app crm
$ bench browse sitename.localhost --user Administrator
```
1. Access the crm page at `sitename.localhost:8000/crm` in your web browser.
**For Frontend Development**
1. Open a new terminal session and cd into `jingrow-bench/apps/crm`, and run the following commands:
```
yarn install
yarn dev
```
1. Now, you can access the site on vite dev server at `http://sitename.localhost:8080`
**Note:** You'll find all the code related to Jingrow CRM's frontend inside `jingrow-bench/apps/crm/frontend`
### Docker
You need Docker, docker-compose and git setup on your machine. Refer [Docker documentation](https://docs.docker.com/). After that, follow below steps:
**Step 1**: Setup folder and download the required files
mkdir jingrow-crm
cd jingrow-crm
# Download the docker-compose file
wget -O docker-compose.yml https://raw.githubusercontent.com/jingrow/crm/develop/docker/docker-compose.yml
# Download the setup script
wget -O init.sh https://raw.githubusercontent.com/jingrow/crm/develop/docker/init.sh
**Step 2**: Run the container and daemonize it
docker compose up -d
**Step 3**: The site [http://crm.localhost:8000/crm](http://crm.localhost:8000/crm) should now be available. The default credentials are:
- Username: Administrator
- Password: admin
## Learn and connect
- [Telegram Public Group](https://t.me/frappecrm)
- [Discuss Forum](https://discuss.jingrow.com/c/jingrow-crm)
- [Documentation](https://docs.jingrow.com/crm)
- [YouTube](https://www.youtube.com/channel/UCn3bV5kx77HsVwtnlCeEi_A)
- [X/Twitter](https://x.com/frappetech)
<br>
<br>
<div align="center" style="padding-top: 0.75rem;">
<a href="https://framework.jingrow.com" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://framework.jingrow.com/files/Jingrow-white.png">
<img src="https://framework.jingrow.com/files/Jingrow-black.png" alt="JINGROW" height="28"/>
</picture>
</a>
</div>

View File

@ -1,32 +0,0 @@
version: "3.7"
name: crm
services:
mariadb:
image: mariadb:10.8
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
- --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- mariadb-data:/var/lib/mysql
redis:
image: redis:alpine
jingrow:
image: jingrow/bench:latest
command: bash /workspace/init.sh
environment:
- SHELL=/bin/bash
working_dir: /home/jingrow
volumes:
- .:/workspace
ports:
- 8000:8000
- 9000:9000
volumes:
mariadb-data:

View File

@ -1,40 +0,0 @@
#!bin/bash
if [ -d "/home/jingrow/jingrow-bench/apps/jingrow" ]; then
echo "Bench already exists, skipping init"
cd jingrow-bench
bench start
else
echo "Creating new bench..."
fi
bench init --skip-redis-config-generation jingrow-bench --version version-15
cd jingrow-bench
# Use containers instead of localhost
bench set-mariadb-host mariadb
bench set-redis-cache-host redis://redis:6379
bench set-redis-queue-host redis://redis:6379
bench set-redis-socketio-host redis://redis:6379
# Remove redis, watch from Procfile
sed -i '/redis/d' ./Procfile
sed -i '/watch/d' ./Procfile
bench get-app crm --branch main
bench new-site crm.localhost \
--force \
--mariadb-root-password 123 \
--admin-password admin \
--no-mariadb-socket
bench --site crm.localhost install-app crm
bench --site crm.localhost set-config developer_mode 1
bench --site crm.localhost set-config mute_emails 1
bench --site crm.localhost set-config server_script_enabled 1
bench --site crm.localhost clear-cache
bench use crm.localhost
bench start

@ -1 +0,0 @@
Subproject commit c9a0fc937cc897864857271b3708a0c675379015

View File

@ -37,6 +37,6 @@ To change this, open `src/router.js` and change the base URL passed to `createWe
- [Vue 3](https://v3.vuejs.org/guide/introduction.html)
- [Vue Router](https://next.router.vuejs.org/guide/)
- [Jingrow UI](https://github.com/jingrow/jingrow-ui)
- [Jingrow UI](http://git.jingrow.com/jingrow/jingrow-ui)
- [TailwindCSS](https://tailwindcss.com/docs/utility-first)
- [Vite](https://vitejs.dev/guide/)

View File

@ -1,7 +1,7 @@
/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
// Read more: http://git.jingrow.com/vuejs/core/pull/3399
// biome-ignore lint: disable
export {}

View File

@ -55,7 +55,7 @@ let links = [
},
{
label: __('GitHub Repository'),
url: 'https://github.com/jingrow/crm',
url: 'http://git.jingrow.com/jingrow/crm',
icon: LucideGitHub,
},
{
@ -70,7 +70,7 @@ let links = [
},
{
label: __('Report an Issue'),
url: 'https://github.com/jingrow/crm/issues',
url: 'http://git.jingrow.com/jingrow/crm/issues',
icon: LucideBug,
},
{

View File

@ -145,7 +145,7 @@ export const services = [
info: __(
`Setting up Jingrow Mail requires you to have an API key and API Secret of your email account. Read more `,
),
link: 'https://github.com/jingrow/mail',
link: 'http://git.jingrow.com/jingrow/mail',
custom: true,
},
]

View File

@ -14,7 +14,7 @@
v-bind="{ togglePopover, updatePosition, open, close, isOpen }"
/>
</div>
<teleport to="#frappeui-popper-root">
<teleport to="#jingrowui-popper-root">
<div
ref="popover"
class="relative z-[100]"
@ -104,9 +104,9 @@ export default {
},
created() {
if (typeof window === 'undefined') return
if (!document.getElementById('frappeui-popper-root')) {
if (!document.getElementById('jingrowui-popper-root')) {
const root = document.createElement('div')
root.id = 'frappeui-popper-root'
root.id = 'jingrowui-popper-root'
document.body.appendChild(root)
}
},
@ -124,7 +124,7 @@ export default {
return
}
const root = document.getElementById('frappeui-popper-root')
const root = document.getElementById('jingrowui-popper-root')
const insidePopoverRoot = root.contains(clickedElement)
if (!insidePopoverRoot) {
return this.close()

View File

@ -10,7 +10,7 @@ import { posthogPlugin } from './telemetry'
import App from './App.vue'
import {
FrappeUI,
JingrowUI,
Button,
Input,
TextInput,
@ -42,7 +42,7 @@ let pinia = createPinia()
let app = createApp(App)
setConfig('resourceFetcher', frappeRequest)
app.use(FrappeUI)
app.use(JingrowUI)
app.use(pinia)
app.use(router)
app.use(translationPlugin)

View File

@ -2,17 +2,17 @@ import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import path from 'path'
import frappeui from 'jingrow-ui/vite'
import jingrowui from 'jingrow-ui/vite'
import { VitePWA } from 'vite-plugin-pwa'
// https://vitejs.dev/config/
export default defineConfig(async ({ mode }) => {
const isDev = mode === 'development'
const frappeui = await importFrappeUIPlugin(isDev)
const jingrowui = await importFrappeUIPlugin(isDev)
const config = {
plugins: [
frappeui({
jingrowui({
frappeProxy: true,
lucideIcons: true,
jinjaBootData: true,

View File

@ -5,6 +5,6 @@
"postinstall": "cd frontend && yarn install",
"dev": "cd frontend && yarn dev",
"build": "cd frontend && yarn build",
"upgrade-frappeui": "cd frontend && yarn add jingrow-ui@latest && cd .."
"upgrade-jingrowui": "cd frontend && yarn add jingrow-ui@latest && cd .."
}
}