GithubHelp home page GithubHelp logo

gotdibbs / dynamics-365-toolkit Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 7.0 6.07 MB

Toolkit for development in a Microsoft Dynamics 365/CRM 2011+ environment. Note that the bookmarklets are deprecated in favor of the chrome extension, but will continue to function for CRM 2011 through 8.x.

Home Page: https://chrome.google.com/webstore/devconsole/2a32dd73-ad4f-4679-92a4-e373d1d25970/ajhcbjjgonogiifldoofdeonjclcehkh/edit?hl=en_US

License: MIT License

JavaScript 88.53% CSS 7.06% Gherkin 4.42%
bookmarklet dynamics-365 dynamics-crm javascript

dynamics-365-toolkit's Introduction

Hi there 👋

GitHub Profile Stats

💬 Ask me about: JavaScript, React, Growing Software Engineers

😊 Pronouns: He/him

dynamics-365-toolkit's People

Contributors

dependabot[bot] avatar gotdibbs avatar

Stargazers

 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

dynamics-365-toolkit's Issues

Showing fields marks them as dirty for update/save operation

What is the current behavior? How do you reproduce it?

Currently using the Chrome extension, version 2.2.2. By using "Show All Fields" command on a form, all fields get marked dirty as well. Saving the form after showing all fields erroneously triggers plugins and flows that have filter criteria different than the fields that are actually changed.

What is the expected behavior?

Clicking "Show All Fields" should not set fields to dirty if they are not changed. Perhaps before setting the field visibility, the dirty-ness of the field can be tracked and set accordingly after the visibility change.

Please tell us about your environment:**

Chrome, using the 2.2.2 version of the Toolbox. Latest version of Dynamics (2020 Release wave 1; 9.1.0000.2251).

Other information

End-user here complained about this problem describing it as such: they have a flow that triggers on a field that is not visible by default. They used Show All Fields, updated a different field, and then hit save. The flow was still triggered although the field that's supposed to trigger it was not actually changed. Unfortunately, flows still do not have support for pre/post-image type comparisons, so it's not possible to just add a condition to the flow to check before/after for non-updates.

New Command: Ribbon Debug

A recent update enabled a UCI ribobn debugger. Other toolkits are handling this like:

if (Xrm.Internal.isUci && Xrm.Internal.isUci() && !location.search.includes('ribbondebug=')) {
    window.location.href = `${location.href}&ribbondebug=true`;
}

We should investigate to see if we can make this any easier by finding a global API or rebuilding the app config and auto-clicking the button without a refresh.

Expand toolbox functionality with quick nav options

  • Add categories to toolbox with slide effect to open drawer of new links
  • Add new options for quick nav like solution import, advanced find
  • Begin thinking of architecture for making service calls to find solutions by name and open them quicker, metadata explorer, etc.

Toggle Schema names does not stay on.

What is the current behavior? How do you reproduce it?

Toggle Schema Names is always on, clicking the toggle button briefly removes them then they show again.

What is the expected behavior?

Clicking the toggle button should switch off the schema names then clicking again should show them.

Please tell us about your environment:

  • Dynamics Version: 9.1.0000.26437

  • Browser: Edge 86.0.622.69 (Official build) (64-bit)

  • Toolbox Version: 2.3.1

Other information

For example: screenshots, detailed explanations, stacktraces, related issues, suggestions how to fix, links for us to have context, etc.

image

image

Migrate bookmarklets in toolbox to functions

Originally bookmarklets were included in the toolbox UI to reduce code, but as bookmarklets are being deprecated, a split out is warranted for better debugging. Bookmarklets have a finite function length so removing that limitation will help us make newer better experiences.

Filter out errors from crm4.dynamics online instances

What is the current behavior? How do you reproduce it?

We're receiving errors from *.crm4.dynamics.com which we don't support, let's filter those out and/or try to make it more obvious that crm4 isn't supported.

What is the expected behavior?

No errors logged, UX for unsupported environments is clearer

Please tell us about your environment:

  • Dynamics Version: 4.x

  • Browser: all

  • Toolbox Version: all

Investigate Auto Publish

Investigate publishing automatically to the chrome and microsoft edge (chromium) web stores from github actions.

Quick Actions Tests

  1. Test for when viewing a record
  2. Test for when not viewing a record
  3. Share logic with Utilities tests

Investigate Enable All Fields Dirty Field Issue

Reported by community:

Submit mode ‘Always’ will push all fields into the save request, which may cause unexpected results.

  • Any code/validation that doesn’t compare the new value with the old value will treat the fields as being updated
  • Same applies for workflows, which will be triggered if the field is present in the ‘target’ of the save request

Suggested resolution requiring evaluation:

I think this depends on the current value of the submitmode (rather than the state of the field, enabled/disabled):

  • Never: in that case you need to change the submitmode, otherwhise it will not save
  • Dirty: no update needed, will update if you change it
  • Always: no update needed, will always update, even if you don’t change it
    So, if you still want to update the submit mode, you can set it to ‘dirty’ for all of the fields. Then it will only update the fields you change.

Add readme

Cover:

  • Chrome extension vs. bookmarklets
  • Level of support received
  • Contributing

Prevent error notifications from app launcher

What is the current behavior? How do you reproduce it?

When accessing a URL of the form: /main.aspx?forceUCI=1&pagetype=apps errors occur from the polling mechanism for the dynamics version.

What is the expected behavior?

No errors occur, polling pauses.

Please tell us about your environment:

  • Dynamics Version: latest

  • Browser: all

  • Toolbox Version: 2.3.2

Other information

None

Ensure all instances are cleaned up when close is clicked

There are some awkward race conditions that can present in multiple instances of the toolbox container being injected into the DOM, and conditions where the root element in launcher.js have already been cleared/orphaned. We should ensure all references are removed and be safer when attempting to remove the element.

https://github.com/gotdibbs/Dynamics-CRM-Bookmarklets/blob/4f80c73b21304760ebc88c6a68642f2fc976ea76/src/chromeExtension/toolkit/launcher.js#L77

Filter out workflow editor from errors

What is the current behavior? How do you reproduce it?

Errors are triggering when toolbox is used on paths of the form /sfa/workflow/edit.aspx (potentially /SFA/Workflow/entityform.aspx too).

What is the expected behavior?

Errors should not trigger for outdated forms.

Please tell us about your environment:

  • Dynamics Version: 9.x

  • Browser: all

  • Toolbox Version: latest

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.