Giter Site home page Giter Site logo

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

View Code? Open in Web Editor NEW
37.0 6.0 34.0 607 KB

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

License: MIT License

JavaScript 93.92% Python 4.35% CSS 1.73%
attachment erpnext erpnext-customization file-upload frappe frappe-attachments frappe-framework javascript uploads

frappe-better-attach-control's People

Contributors

grolaf avatar kid1194 avatar mohsinalimat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

frappe-better-attach-control's Issues

Question ๐Ÿ™‹โ€โ™‚๏ธ

Hello kid1194,

Thanks for your script.

Before installing it may I ask, where is this better-attach UI element located?

I would like to have an upload button placed in list view, and not in any Doc form. Is this possible?

[BUG]: Unable to clear the uploaded attachments.

Describe the bug
Error message after remove the attachment and hit clear button.

To Reproduce

  1. Remove the attachment from sidebar by clicking x
  2. Hit Clear of the attachment field
  3. The error message

Expected behavior
Attachment is cleared and allow to upload

Screenshots
Shot 2023-05-03 at 01 23 41

Desktop (please complete the following information):
ERPNext: v14.22.0 (version-14)
Frappe Framework: v14.33.0 (version-14)
Frappe Better Attach Control: v2.0.0 (main)

Additional context
None.

[BUG]: Missing comma in field.py

frappe/apps/frappe_better_attach_control/frappe_better_attach_control/api/field.py

a missing comma is causing the program to break on line 35

Error while getting branch v2-beta

find the log below... the error seems to be a build error

Getting frappe-better-attach-control
$ git clone https://github.com/kid1194/frappe-better-attach-control --branch v2-beta --depth 1 --origin upstream
Cloning into 'frappe-better-attach-control'...
remote: Enumerating objects: 59, done.
remote: Counting objects: 100% (59/59), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 59 (delta 15), reused 40 (delta 10), pack-reused 0
Receiving objects: 100% (59/59), 31.04 KiB | 836.00 KiB/s, done.
Resolving deltas: 100% (15/15), done.
Ignoring dependencies of https://github.com/kid1194/frappe-better-attach-control. To install dependencies use --resolve-deps
Installing frappe_better_attach_control
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/frappe/frappe-bench/apps/frappe_better_attach_control 
$ bench build --app frappe_better_attach_control
โœ” Application Assets Linked                                                                                                                                   


yarn run v1.22.19
warning ../../package.json: No license field
$ node esbuild --production --apps frappe_better_attach_control --run-build-command
โœ˜ [ERROR] No matching export in "../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/audio.js" for import "default"

    ../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/index.js:8:7:
      8 โ”‚ import is_audio from './audio.js';
        โ•ต        ~~~~~~~~

โœ˜ [ERROR] No matching export in "../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/pdocument.js" for import "default"

    ../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/index.js:11:7:
      11 โ”‚ import is_pdocument from './pdocument.js';
         โ•ต        ~~~~~~~~~~~~

 ERROR  There were some problems during build

Error: Build failed with 2 errors:
../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/index.js:8:7: ERROR: No matching export in "../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/audio.js" for import "default"
../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/index.js:11:7: ERROR: No matching export in "../frappe_better_attach_control/frappe_better_attach_control/public/js/filetypes/pdocument.js" for import "default"
    at failureErrorWithLog (/home/frappe/frappe-bench/apps/frappe/node_modules/esbuild/lib/main.js:1600:15)
    at /home/frappe/frappe-bench/apps/frappe/node_modules/esbuild/lib/main.js:1246:28
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Terminated
error Command failed with exit code 143.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 109, in <module>
    main()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name="bench")
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/utils.py", line 82, in build
    bundle(mode, apps=apps, hard_link=hard_link, verbose=verbose, skip_frappe=skip_frappe)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/build.py", line 257, in bundle
    frappe.commands.popen(command, cwd=frappe_app_path, env=get_node_env(), raise_err=True)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 98, in popen
    raise subprocess.CalledProcessError(return_, command)
subprocess.CalledProcessError: Command 'yarn run production --apps frappe_better_attach_control --run-build-command' returned non-zero exit status 143.
ERROR: 
Traceback (most recent call last):
  File "/home/frappe/.local/bin/bench", line 8, in <module>
    sys.exit(cli())
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/cli.py", line 127, in cli
    bench_command()
  File "/usr/lib/python3/dist-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/commands/make.py", line 159, in get_app
    get_app(
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/app.py", line 432, in get_app
    app.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/utils/render.py", line 126, in wrapper_fn
    return fn(*args, **kwargs)
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/app.py", line 230, in install
    install_app(
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/app.py", line 574, in install_app
    build_assets(bench_path=bench_path, app=app)
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/utils/bench.py", line 330, in build_assets
    exec_cmd(command, cwd=bench_path, env={"BENCH_DEVELOPER": "1"})
  File "/home/frappe/.local/lib/python3.10/site-packages/bench/utils/__init__.py", line 155, in exec_cmd
    raise CommandFailedError
bench.exceptions.CommandFailedError

[BUG]: Incorrect path for API request

When JS frontend tries to retrieve options data for Attach Field, it goes to not existing route.
When inspecting network request in dev console, it show api/method/frappe_better_attach_control.api.get_options, but there is no api controller selected. It should be api/method/frappe_better_attach_control.api.field.get_options.

I think, starting in

there should by:

request(
  'field.get_options',

Image Not Attaching

Okay so we installed the master branch and we can't get attach any document/ image to the upload button. The standard behavior is for the attached file to link to the upload button.

[REQ]: Restrict Uploaded File Name

Is your feature request related to a problem? Please describe.
It is better to have predefined file name for better search in future.

Describe the solution you'd like

  1. Allow to use REGEX to define the name format.
  2. And Show Name Format on the front for the user to understand when upload or see the error why it is rejected.

Describe alternatives you've considered
No

Additional context
No

[REQ]: make it wiki pages

Please make it wiki pages with image, gif and video view. Need good documents with image,gif and video.

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.