Skip to content

Modify CurrencyField and Field to accomodate for default value along with prefix #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

anmol1vw13
Copy link

No description provided.

}



Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are too many blank newlines here, I would just like to have one blank line at the top and bottom:

...

            if(!Alpaca.isValEmpty(this.data) &&
                !Alpaca.isEmpty(this.options["prefix"]) &&
                !Alpaca.startsWith(this.data, this.options["prefix"])){
                this.data = `${this.options["prefix"]}${this.data}`
            }

...

if(!Alpaca.isValEmpty(this.data) &&
!Alpaca.isEmpty(this.options["prefix"]) &&
!Alpaca.startsWith(this.data, this.options["prefix"])){
this.data = `${this.options["prefix"]}${this.data}`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have an .eslintrc at the root of the DocSpring repo, and this should run some linting rules on any JavaScript code in the app or vendor directory. It's configured with "plugins": ["es5"], which excludes any new ES6 syntax. Unfortunately this is needed because we are still using Sprockets with the Rails asset pipeline, and Sprockets doesn't support any newer JavaScript syntax, such as the backticks for interpolation `...`. This is normally not an issue in modern browsers, but it can cause issues in browsers that don't support newer features, since we don't have any BabelJS processor setup for browser compatibility.

So we just have to be careful about only using the old ES5 JavaScript for any JS in our Rails app assets. That means that this line should be changed to standard ES5 JavaScript:

this.data = this.options["prefix"] + this.data

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But also I'm not too sure if this is right place for this code. I think prefix is only used in the CurrencyField, and is not used by Field or any other descendants. So I would probably put this in the constructor of CurrencyField, underneath the call to this.base(...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another thing to note is that prefix is an option that is passed to the jQuery Price Format plugin, during $(field).priceFormat(self.options);. I'm still not sure what's going wrong with this library, but I would like to investigate further and perhaps find a cleaner solution

@@ -46,8 +45,7 @@
// Default should be true.
options.allowOptionalEmpty = true;
options.clearOnEmpty = true;

if (typeof(data) !== "undefined")
if (data!=null && typeof(data) !== "undefined")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add some spaces: data != null

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants