This should give more fine-grained control as now we are sure
what version of browserify, or any other tool we are using to bundle
our assets. Installing browserify globally is also not required now.
This will also be helpful when we add more complicated transforms
and other tools to our build process, as otherwise it would keep
complicating our command used currently for the build process.
Use browserify for admin console scripts too.
Modularize needed files such as l10n strings for console.
Use npm for managing bootstrap as dependency of admin console.
Let the whole compiled admin bundle export a variable 'Admin' and
attach various classes to this global variable, similar to how we
have in Leaflet having a global L variable and other things
attached to this variable.
Changed "make pot" to deliver files in po/template, so the .pot files
are committed as well as the resulting .po files.
Added a README to explain, that styles is not part of translation.
View callbacks with viewid = 0 seems strange; it always lurks
around but is never attached to any view.
Also, view callbacks with viewid = our own viewid should not be
sent from the server, lets ignore them for now.
With current version, position of context menu is not set at
specified position. 2.2.3 fixes the issue.
Also udpate tarballs in node_shrinkwrap and dep. tree in
npm-shrinkwrap.json
Using npm-shrinkwrap, we are locking in our dependency tree
completely, leaving no scope of being affected by any
regression in any of the dependencies. In other words, all of the
dependency tree is dumped in npm-shrinkwrap.json file.
Using shrinkpack, we are also committing these tarballs of
dependencies in node_shrinkwrap/, so that, we are not
depending on npm registry at all during our build process. Since these
are just tarballs, its also better space-wise than committing
node_modules/ per se.
Developers when want to update any dependency should bump the
version in package.json, and also commit the new copy of
tarballs in node_shrinkwrap/.
See: https://github.com/JamieMason/shrinkpack for more info.
Commented out devDependencies; these are required for testing framework
inherited from upstream leaflet, but we do not have such tests as of
now for loleaflet.
Move them to devDependencies when need arises.
Don't include each third party script in a separate <script> tag,
rather have one single main.js file require'ing these different
scripts. Then `browserify' on main.js which bundles everything
into a single bundle.js containing all of the dependencies.
Also add these 3rd party scripts such as jquery, jquery-ui,
select2 etc. using npm, rather than manually downloading their
files from the internet. This should ease the process of managing
these front-end dependencies; upgrade process should be very easy
now.
... instead of setting a httpOnly cookie for admin websocket
endpoint which can be CSRFed.
With this, we remove the httpOnly tag on jwt cookie so that
scripts in admin html pages can access the jwt cookie and
authenticates after opening websocket endpoint. Until
authenticated using 'auth authToken' command, admin will not
respond to any admin command.
Also, adapt admin test these changes