jQuery 1.12 full (CJS/webpack)? - jquery-ui

jQuery UI 1.12 appears to backwards incompatible with jQuery UI 1.10 (hurray!). They've shuffled all their code around and now their "main" bundle only includes $.widget but not the actual widgets like $.datepicker.
Specifically, inside package.json you'll find
"main": "ui/widget.js",
This tells build tools like webpack where to find the main file for inclusion. However, ui/widget.js doesn't include the rest of the components like it did before.
Normally this isn't such a big deal, and I can just hack around it by modifying my webpack.config.js to point to the real main file, except that I can't find it!
Is there a main/bundle file included in the npm version of jQuery 1.12?

This pull request's discussion gave me the information I needed.
https://github.com/jquery/jquery-ui/pull/1600
What I learned is with jquery-ui 1.12.0, there's no more main file that imports everything. In my case I only needed either ui/widget.js or the button widget (jquery-ui/ui/widgets/button). I pointed to them directly and it worked for me.
In your case, you should be fine requiring your datepicker like this:
require('jquery-ui/ui/widgets/datepicker');
It's kinda good actually. You don't need to bundle all of jquery-ui to inherit one component you're using.

Related

Bloodhound html file changes are not affecting in ui

I am working on ui bloodhound changes. I have to remove logo of apache bloodhound and header tabs in the dashboard. I made the changes in bloodhound_theme-> bhtheme-> templates-> bloodhound_theme.html, this location file but no changes have been made in ui. after running the server. I checked in the google i didnt get any material regarding it. If anyone knows the way to make a changes in bloodhound ui manually please guide me.
Thanks.
Bloodhound is built on Trac, so most of the Trac documentation applies.
You can modify aspects of the header using configuration options, so modifying a template may not be necessary. See also this documentation.
To modify templates you should follow the instructions TracInterfaceCustomization. In short, you should put a copy of the template in the Environment templates directory.
Keep in mind for any modifications to js and css files, particularly if you followed the installation instructions to install Bloodhound: you'll need to re-run the deploy command to extract static assets to the location from which they are served.
$ trac-admin /opt/bloodhound/environments/main/ deploy /opt/bloodhound/environments/main/site

Cordova white screen of death iOS - browserify, react, cordova

I have a strange situation with a project for iOS.
Its created using browserify and React for Cordova and aimed at iOS.
We have built the project for iOS using Cordova commands without any issues. It runs with no xcode errors or Javascript errors either however none of the JS ui appears on screen. We just get a blank white screen with the system bar at the top. See attached screen shot.
So far we have found out that if you add HTML to the index.html in WWW folder it prints that fine so I assume its the JS.
When we run in a browser it works as well as building for Android.
We have no problems with anything other than iOS (simulator and device build).
hopefully someone can help me out here because I'm stumped. Please let me know what files you need to look at and I'll make them available.
Thanks in advance.
IMAGES
The error screen: http://www.voidapplications.co.uk/errorScreen.png
What we expect to be shown: http://www.voidapplications.co.uk/whatWeExpect.png
If you are using internationalization component that's because you need to use the Intl polyfill:
Intl.js and FT Polyfill Service
Intl.js polyfill was recently added to the Polyfill service, which is developed and maintained by a community of contributors led by a team at the Financial Times. It is available thru cdn.polyfill.io domain, which routes traffic through Fastly, which makes it available with global high availability and superb performance no matter where your users are.
To use the Intl polyfill thru the Polyfill service just add one script tag in your page before you load or parse your own JavaScript:
<script src="https://cdn.polyfill.io/v1/polyfill.min.jsfeatures=Intl.~locale.en"></script>
When specifying the features to use thru the polyfill service, you have to specify what locale, or locales to load along with the Intl polyfill for the page to function, in the example above we are specifying Intl.~locale.en, which means only en, but you could do something like this:
<script src="https://cdn.polyfill.io/v1/polyfill.min.js?features=Intl.~locale.fr,Intl.~locale.pt"></script>
note: the example above will load the polyfill with two locale data set, fr and pt.
This is by far the best option to use the Intl polyfill since it will only load the polyfill code and the corresponding locale data when it is really needed (e.g.: safari will get the code and patch the runtime while chrome will get an empty script tag).
source & other ways to include Intl polyfill: https://github.com/andyearnshaw/Intl.js#getting-started
You can debug the UIWebView in the simulator with Safari http://moduscreate.com/enable-remote-web-inspector-in-ios-6/. You'll probably see a big error message in the console, if not you will have access to the debugger so you can step through and sort it out.
I have had this issue in the past, it turned out to be unsupported javascript features. for example, setting default parameters in the function. I.e:
function test( myvalue=0 ) { /* ... */ };
I had to initialise the value inside the function instead. You could also try removing any ecma script 2016 features you may have implemented.
Trouble shooting this type of issue was painful. I created a minimal version of the smallest part of my product compiled and ran it on ios emulator, added another chunk of the product, rinse and repeat.
Im sure there's a better way to detect these issues, but I do not know it.

How to inject custom js files with grunt-wiredep?

Is it possible to inject my own js folder by grunt-wiredep task? Is there solution for it?
EDIT
I found grunt-inject, but I'm using jade view engine(that solution is only for HTML)
Doesn't look like it from first glance. Looks like it is exclusively dependent on wiredep which only scans bower.json.
The closest thing you can do is manage other JS dependencies through bower as well.
https://github.com/stephenplusplus/grunt-wiredep/issues/107
I am also looking for an alternative. I am also looking into grunt-inject, but no longer use jade on my projects.
https://github.com/ChrisWren/grunt-inject
https://github.com/klei/grunt-injector
https://github.com/scott-laursen/grunt-scriptlinker
If I figure out a jade alternative, and which one I chose, I'll update my post.

How to load plugins in the new tab in mac vim?

I'm using macvim to code rails project.
I used some plugins, which is specific to rails(like vim-rails) and will be loaded only in a rails' app folder.
After I entered a rails's folder, I run mvim and everything goes fine.
However, when I use command + T to open a new tab. the function of those plugins disabled..seems they are not loaded..
How to load them when I open a new tab?
If these plugins use the similar code to that one fugitive does, then putting something like
augroup LaunchFugitiveForAllBuffers
autocmd!
autocmd BufNew :doautocmd fugitive BufRead .
augroup END
(replace fugitive with actual event group name [1]). You can find this name by either grepping plugin files for BufRead (note: case does not really matter) or walking through the output of au BufRead like I did (there should not be many items). Note that things may be more complicated: for example your plugins attach to Filetype event and changing the above to doautocmd fugitive Filetype ruby may not help. Also note that you can purge out word fugitive at all leaving just a space, but it is potentially destructive operation and can be used only for testing (potentially very destructive in case of Filetype event and some others).
[1] Note: event group, not plugin name. These groups are likely to have the name that is a derivative of plugin name, but they are not forced to be equal to it.
Update: It seems that you need railsPluginDetect group for Tim Pope’s rails plugin. I do not have any rails project so I can’t say this for sure, but autocommand looks very similar to fugitive one. It is better though that you go to plugin bug tracker and add a request there (do not forget to search for an existing one).
Additional informations may be needed but I think that's because the new tab creates an empty virtual buffer.
Because your RoR-related plugins only work in a Rails folder and you are not in a Rails folder -- you are probably in ~, check :pwd to know what the working directory is -- those plugins don't work.

Firefox extension: Embed javascript in a webpage

I want to insert some script into every page, which have some functions that will be called by the modified HTML of that page, using a Firefox extension. I am able to insert the JavaScript into the head of the HTML, and also modify the page, but the java script functions are not called by the onmouseover event.
Does someone has any pointer on how to do that, using java script in local extension or as a online resource.
No GreaseMonkey, I need to do it with my plugin and not ask user to install greasemonkey, my plugin and the scripts.
Greasemonkey does this. It's excellent!
Make a Greasemonkey script. See Userscripts.org for lots of example ones to work off.
Why not use Greasemonkey? It allows you to execute javascript on any page on Firefox, and if executing the code you enter isn't good enough you could dynamically add links to the head, too.
you can modify the DOM using Firebug. I am not sure if you can load files locally.. sounds malicious. Also, you can just run arbitrary javascript commands in the Firebug console (a la python/ruby console)
There are some Greasemonkey-to-extension "compilers" (or extension-wrappers) out there:
Arantius's GM compiler
Gina Trapani's multiple-GM-script compiler
I've used the first one with extensive internal tweaking over time. However, I don't believe the compiler is actively maintained (default max-version is only 3.0), so may not be up-to-date with the latest GreaseMonkey, or FireFox.
I think Gina Trapani's is more designed for multiple scripts targetting the same domain, but I haven't used it.
Neither of these is a "GreaseMonkey solution" per se, as the end-user never has to install GreaseMonkey. They get a real-live FireFox extension. The core is very similar to GM, but you can change or add as much as you like.

Resources