Coder Social home page Coder Social logo

kid1194 / frappe-better-attach-control Goto Github PK

View Code? Open in Web Editor NEW
38.0 6.0 36.0 634 KB

A small plugin for Frappe that adds the support of customizations to the attach control.

License: MIT License

JavaScript 84.59% Python 11.49% CSS 3.92%
attachment erpnext erpnext-customization file-upload frappe frappe-attachments frappe-framework javascript uploads

frappe-better-attach-control's Introduction

Frappe Better Attach Control

A small plugin for Frappe that adds customization to the attach control. It supports RTL layout and dark mode out of the box.

⚠️ v2 is still in BETA stage ⚠️

v2 Beta15

Apologies in advance for any problem or bug you face with this module. Please report any problem or bug you face so it can be fixed.


Better Attach Control

Better Attach Control

Better Attach Control


Status

  • Desk: 🔵 Testing
  • Web Form: 🔵 Testing

Special Thanks

A simple display of gratitude and appreciation to those who provided helped and kind support.

Version 2

  • MohsinAli
  • Robert C
  • NirajRegmi

Version 1

  • CA. B.C.Chechani

Table of Contents


Requirements

  • Frappe >= v12.0.0

Setup

⚠️ Do not forget to replace [sitename] with the name of your site in all commands. ⚠️

Install

  1. Go to bench directory
cd ~/frappe-bench
  1. Get plugin from Github

(Required only once)

bench get-app https://github.com/kid1194/frappe-better-attach-control
  1. Build plugin

(Required only once)

bench build --app frappe_better_attach_control
  1. Install plugin on a specific site
bench --site [sitename] install-app frappe_better_attach_control
  1. Check the usage section below

Update

  1. Go to app directory
cd ~/frappe-bench/apps/frappe_better_attach_control
  1. Get updates from Github
git pull
  1. Go to bench directory
cd ~/frappe-bench
  1. Build plugin
bench build --app frappe_better_attach_control
  1. Update a specific site
bench --site [sitename] migrate
  1. (Optional) Restart bench to clear cache
bench restart

Uninstall

  1. Go to bench directory
cd ~/frappe-bench
  1. Uninstall plugin from a specific site
bench --site [sitename] uninstall-app frappe_better_attach_control
  1. Remove plugin from bench
bench remove-app frappe_better_attach_control
  1. (Optional) Restart bench to clear cache
bench restart

Usage

  1. Go to Customization > Customize Form

  2. Enter the form doctype (Ex: 'User')

  3. Scroll down to the fields area

  4. Create an Attach or Attach Image field or edit an existing custom field

  5. Inside the field's Options property, add the options you want as a JSON string.

    Ex: {"allowed_file_types": [".jpg", ".png", ".gif"]}

⚠️ Remember

You can't modify the original fields of a doctype, so create a new field or clone and modify the entire doctype.


Available Field Options

Option Description
dialog_title 🔴 Upload dialog title to be displayed ️(🔶Frappe >= v14.0.0).

🔹Example: "Upload Images"
🔹Default: "Upload"
upload_notes Upload text to be displayed.

🔹Example: "Only images and videos, with maximum size of 2MB, are allowed to be uploaded"
🔹Default: ""
disable_file_browser 🔴 Disable file browser uploads.

⚠️ (File browser is always disabled in Web Form)

🔹Default: false
allow_multiple Allow multiple uploads.

⚠️ (Field value is a JSON array of files url)

🔹Default: false
max_file_size Maximum file size (in bytes) that is allowed to be uploaded.

🔹Example: 2048 for 2KB
🔹Default: Value of maximum file size in Frappe's settings
allowed_file_types Array of allowed file types (mimes) or extensions to upload. Prefix escaped RegExp string types with $.

⚠️ (File extensions must have a leading dot ".")
⚠️ (RegExp string types will not be used to in HTML accept attribute)

🔹Example: ["image/", "video/", ".pdf", ".doc", "$audio/([a-z]+)"]
🔹Default: null or ["image/*"]
max_number_of_files Maximum number of files allowed to be uploaded if multiple upload is allowed.

⚠️ (Bypassing the maximum attachments of doctype might not work)

🔹Example: 4
🔹Default: Value of maximum attachments set for the doctype
crop_image_aspect_ratio Crop aspect ratio for images (🔶Frappe >= v14.0.0).

🔹Example: 1 or 16/9 or 4/3
🔹Default: null
as_public Force uploads to be saved in public folder by default.

🔹Default: false
allowed_filename 🔴 Only allow files that match a specific file name to be uploaded.

🔹Example: (String)"picture.png" or (RegExp String)"/picture-([0-9]+).png/"
🔹Default: null
allow_reload Allow reloading attachments (🔶Frappe >= v13.0.0).

🔶 Affect the visibility of the reload button.🔶

🔹Default: true
allow_remove Allow removing and clearing attachments.

🔶 Affect the visibility of the remove and clear buttons.🔶

🔹Default: true

Available JavaScript Methods

Method Description
toggle_reload(allow: Boolean !Optional) Allow/Deny reloading attachments and toggle the reload button (🔶Frappe >= v13.0.0).
toggle_remove(allow: Boolean !Optional) Allow/Deny removing and clearing attachments and toggle the clear and remove buttons.
set_options(options: JSON Object) Set or change the plugin options.

Supported Fields

  • Attach
  • Attach Image

Issues

If you find bug in the plugin, please create a bug report and let us know about it.


License

This repository has been released under the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.