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