On Wed, Jul 19, 2017 at 4:27 PM, Dave Page <dp...@pgadmin.org> wrote:
> That was a fun one to spot I'm sure! > Indeed, i had setup pgAdmin evn on Linux(as it works on Mac) and then i did `ls path/to/jquery.contextmenu.js`, it was spotted :) > > Thanks, committed. > > On Wed, Jul 19, 2017 at 11:21 AM, Surinder Kumar < > surinder.ku...@enterprisedb.com> wrote: > >> Hi >> >> Fix library path reference for `jquery.contextmenu'. This issue was only >> reproducible on Linux machine. >> So, i setup pgAdmin4 on Ubuntu VM and tested the patch and it works. >> >> Please find attached patch. >> >> Thanks, >> Surinder >> >> On Tue, Jul 18, 2017 at 9:05 PM, Murtuza Zabuawala < >> murtuza.zabuaw...@enterprisedb.com> wrote: >> >>> Great job Surinder, Load time ~2 sec on browser :) >>> >>> [image: Inline image 1] >>> >>> >>> -- >>> Regards, >>> Murtuza Zabuawala >>> EnterpriseDB: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> On Tue, Jul 18, 2017 at 9:01 PM, Dave Page <dp...@pgadmin.org> wrote: >>> >>>> Thanks, applied. >>>> >>>> On Tue, Jul 18, 2017 at 4:12 PM, Surinder Kumar < >>>> surinder.ku...@enterprisedb.com> wrote: >>>> >>>>> Hi >>>>> >>>>> 1. As Slickgrid has dependency of `jQuery-ui`, it was missed. now >>>>> added. >>>>> 2. Column sorting for collection nodes sometimes failing when clicked >>>>> on different collection nodes. >>>>> >>>>> Please find attached patch. >>>>> >>>>> Thanks >>>>> Surinder >>>>> >>>>> On Tue, Jul 18, 2017 at 8:20 PM, Khushboo Vashi < >>>>> khushboo.va...@enterprisedb.com> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Tue, Jul 18, 2017 at 7:46 PM, Dave Page <dp...@pgadmin.org> wrote: >>>>>> >>>>>>> Thanks - applied! >>>>>>> >>>>>>> Awesome work - on an average of 3 tests on my Mac, load time reduced >>>>>>> from 11.55s with v1.6 to 5.53s with GIT Head. >>>>>>> >>>>>> Thanks to all >>>>> >>>>>> >>>>>>> Surinder, great work... >>>>>> >>>>>> >>>>>>> On Mon, Jul 17, 2017 at 5:57 PM, Surinder Kumar < >>>>>>> surinder.ku...@enterprisedb.com> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> Now all test cases are executing. >>>>>>>> Please find updated patch. >>>>>>>> >>>>>>>> Thanks >>>>>>>> Surinder >>>>>>>> >>>>>>>> On Mon, Jul 17, 2017 at 6:57 PM, Surinder Kumar < >>>>>>>> surinder.ku...@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> On Mon, Jul 17, 2017 at 4:52 PM, Dave Page <dp...@pgadmin.org> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> No errors now, but do you know why JS tests are being skipped? >>>>>>>>>> >>>>>>>>> No errors/warning in console even after settings `logLevel: >>>>>>>>> config.LOG_DEBUG`. I am still debugging. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 216 (skipped 212) >>>>>>>>>> SUCCESS (0.085 secs / 0.046 secs) >>>>>>>>>> >>>>>>>>>> Thanks! >>>>>>>>>> >>>>>>>>>> On Mon, Jul 17, 2017 at 12:07 PM, Surinder Kumar < >>>>>>>>>> surinder.ku...@enterprisedb.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Dave, >>>>>>>>>>> >>>>>>>>>>> I didn't removed the vendor modules when i ran regression test >>>>>>>>>>> cases, so modules were being referenced from vendor dir and passed >>>>>>>>>>> for me. >>>>>>>>>>> Now I have fixed path references and test cases are working. >>>>>>>>>>> >>>>>>>>>>> Please find attached patch. >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> Surinder >>>>>>>>>>> >>>>>>>>>>> On Mon, Jul 17, 2017 at 3:18 PM, Surinder Kumar < >>>>>>>>>>> surinder.ku...@enterprisedb.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> I'm currently working on first TODO: "Automatically handle >>>>>>>>>>>> static and template JS files" >>>>>>>>>>>> >>>>>>>>>>>> As discussed with Ashesh, currently the paths to module id are >>>>>>>>>>>> written manually in webpack.config.js, instead the path defined in >>>>>>>>>>>> moudle's >>>>>>>>>>>> `def get_own_javascript()` should be used. >>>>>>>>>>>> >>>>>>>>>>>> So, we will be generating a paths.json file which will contain: >>>>>>>>>>>> >>>>>>>>>>>> 1. resolve > alias - path with reference to module id.(Static >>>>>>>>>>>> files) >>>>>>>>>>>> >>>>>>>>>>>> 2. externals - list of modules to be loaded dynamically on >>>>>>>>>>>> demand(Template files) >>>>>>>>>>>> >>>>>>>>>>>> 3. Shim module dependency >>>>>>>>>>>> >>>>>>>>>>>> 4. List of JS modules to be loaded in specified order. >>>>>>>>>>>> >>>>>>>>>>>> *Implementation:* >>>>>>>>>>>> >>>>>>>>>>>> To generate `paths.json` file, we will be using `Flask's >>>>>>>>>>>> test_client` to make an http request internally within the app >>>>>>>>>>>> context so >>>>>>>>>>>> we can call `current_app.javascripts` property and return the list >>>>>>>>>>>> of JS >>>>>>>>>>>> paths and write those into paths.json file and then use it in >>>>>>>>>>>> webpack.shim.js before the execution of `yarn run bundle` in >>>>>>>>>>>> `javascript_bundler.py` >>>>>>>>>>>> >>>>>>>>>>>> *For example:* >>>>>>>>>>>> >>>>>>>>>>>> @app.route('/get_script_paths') >>>>>>>>>>>> def get_script_paths(): >>>>>>>>>>>> from flask import current_app >>>>>>>>>>>> from pgadmin.utils.ajax import make_json_response >>>>>>>>>>>> >>>>>>>>>>>> return make_json_response(data=current_app.javascripts) >>>>>>>>>>>> >>>>>>>>>>>> if config.DEBUG: >>>>>>>>>>>> with app.test_client() as client: >>>>>>>>>>>> import simplejson as json >>>>>>>>>>>> list_scripts = client.get('/get_script_paths') >>>>>>>>>>>> scripts = json.loads(list_scripts.data) >>>>>>>>>>>> >>>>>>>>>>>> javascriptBundler = JavascriptBundler() >>>>>>>>>>>> javascriptBundler.bundle(scripts['data']) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> This also needs little change in module dependency we defined >>>>>>>>>>>> using 'When': 'node_name' in `def get_own_javascripts(...)` method >>>>>>>>>>>> the module specified(name: module_name) is loaded when module >>>>>>>>>>>> given in `When` is expanded in node. Since we are using Webpack in >>>>>>>>>>>> which >>>>>>>>>>>> behaviour to load module is little different. >>>>>>>>>>>> >>>>>>>>>>>> Now in webpack we are using `imports-loader` to load specific >>>>>>>>>>>> modules. So this is how it should work. >>>>>>>>>>>> >>>>>>>>>>>> 1. First load all modules which do not have dependency on any >>>>>>>>>>>> node like 'about', 'dashboard', 'server-group', 'server' etc. >>>>>>>>>>>> >>>>>>>>>>>> 2. Load module such as `Databases` node first before its child >>>>>>>>>>>> nodes are loaded. >>>>>>>>>>>> Similarly load `Schemas` node before its child nodes are loaded >>>>>>>>>>>> as they are dependent on parent node. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Surinder >>>>>>>>>>>> On Wed, Jul 5, 2017 at 8:22 PM, Sarah McAlear < >>>>>>>>>>>> smcal...@pivotal.io> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hello, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> *Things to discuss:* >>>>>>>>>>>>>> >>>>>>>>>>>>>> How to differentiate between a static and template JS >>>>>>>>>>>>>> >>>>>>>>>>>>>> . >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> What is the advantage of webpacking templated JS? It seems as >>>>>>>>>>>>> though this creates a system in which the bundled dependencies >>>>>>>>>>>>> have to >>>>>>>>>>>>> refer back to the backend to load the templates. >>>>>>>>>>>>> >>>>>>>>>>>> Templated JS will not be part of generated bundle JS, they >>>>>>>>>>>> will load externally( an extra request will be made to server For >>>>>>>>>>>> example: >>>>>>>>>>>> translations.js) >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> If there is a performance win in packing templated JS then >>>>>>>>>>>>> looking at it makes sense. Otherwise it may make sense to put >>>>>>>>>>>>> off until it >>>>>>>>>>>>> is clear that the templated files should be dealt with by either >>>>>>>>>>>>> de-templating them or bundling them where there is a clear reason. >>>>>>>>>>>>> >>>>>>>>>>>> Template JS cannot be bundled, so i extract the <Jinja> code >>>>>>>>>>>> from template files and put into a separate file - ABC.js (also >>>>>>>>>>>> moved >>>>>>>>>>>> template files to static directory) and then load ABC.js >>>>>>>>>>>> dynamically as >>>>>>>>>>>> dependency of other modules. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> However, we're wondering about possible performance penalties >>>>>>>>>>>>> with templating larger files (as opposed to templating >>>>>>>>>>>>> on-demand.) Since >>>>>>>>>>>>> jinja templates can execute arbitrary python, this could get time >>>>>>>>>>>>> expensive >>>>>>>>>>>>> and further slow things like initial page-load. >>>>>>>>>>>>> Another concern is: what happens when a template gets out of >>>>>>>>>>>>> date (e.g. if browser.js had previously filled in the content for >>>>>>>>>>>>> 'panel_item.content' and had been cached, would it render a new >>>>>>>>>>>>> version >>>>>>>>>>>>> with the new values when needed? Or is it possible that we would >>>>>>>>>>>>> get old >>>>>>>>>>>>> content?) >>>>>>>>>>>>> >>>>>>>>>>>> That file will always gets new content when loaded >>>>>>>>>>>> dynamically, the content is not cached. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> *Taks remaining:* >>>>>>>>>>>>>> >>>>>>>>>>>>>> 1. >>>>>>>>>>>>>> Fix local variables which are declared without using var, >>>>>>>>>>>>>> have to check in each file >>>>>>>>>>>>>> by >>>>>>>>>>>>>> running eslint (For now, i will fix only errors which are >>>>>>>>>>>>>> giving error in browser). >>>>>>>>>>>>>> >>>>>>>>>>>>>> 2. >>>>>>>>>>>>>> Move non-template files from ’templates’ to ’static’ >>>>>>>>>>>>>> directory. List of >>>>>>>>>>>>>> pending >>>>>>>>>>>>>> modules is here: >>>>>>>>>>>>>> >>>>>>>>>>>>>> - Tools (mostly all modules - 9 modules) >>>>>>>>>>>>>> - Browser nodes - 3 modules(resource group, roles, >>>>>>>>>>>>>> tablespace) >>>>>>>>>>>>>> - About >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Also can we move >>>>>>>>>>>>>> ' >>>>>>>>>>>>>> dashboard, statistic >>>>>>>>>>>>>> s >>>>>>>>>>>>>> , preferences and help >>>>>>>>>>>>>> ' >>>>>>>>>>>>>> modules inside misc to preserve modularity as pgAdmin is >>>>>>>>>>>>>> modular >>>>>>>>>>>>>> ? >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Is there anything from a organization stance you discussed in >>>>>>>>>>>>> the previous email that needs to be done to make this usable and >>>>>>>>>>>>> consistent? >>>>>>>>>>>>> >>>>>>>>>>>> No >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> >>>>>>>>>>>>> George & Sarah >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Dave Page >>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>> Twitter: @pgsnake >>>>>>>>>> >>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >