Re: Custom layers in PgAdmin IV Mapview

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Atle Frenvik Sveen <atle(at)frenviksveen(dot)net>
Cc: Khushboo Vashi <khushboo(dot)vashi(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Custom layers in PgAdmin IV Mapview
Date: 2018-09-14 07:48:30
Message-ID: CA+OCxoxyt7nXUe=XBtJzgPGpPGVTaooL9sFbCFP6jhq7TvcWrQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi

On Fri, Sep 14, 2018 at 8:44 AM, Atle Frenvik Sveen <atle(at)frenviksveen(dot)net>
wrote:

> Dave, Khushboo:
>
> Thanks for your replies. I've created an issue here:
> https://redmine.postgresql.org/issues/3646
>
> Please feel free to comment and suggest changes.
>
> Thank you both for your input!
>
> I guess I will spend some time getting to know this code-base, and when
> time comes I think I will need some guidance on the process of sending
> patches etc (as this is not something I am familiar with).
>
> I see that there is an .editorconfig and and .eslintrc.js in the repo,
> along with a .pycodestyle. I've never heard of .pycodestyle, but I am
> familiar with PEP8. Any pointers on this?
>

You can run "make check-pep8" and it will check that all the Python code
conforms.

>
> -a
>
>
>
> --
> Atle Frenvik Sveen
> atle(at)frenviksveen(dot)net
> 45278689
> atlefren.net
>
> On Fri, Sep 14, 2018, at 05:24, Khushboo Vashi wrote:
> > On Thu, Sep 13, 2018 at 8:10 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> >
> > > Hi
> > >
> > > On Thu, Sep 13, 2018 at 2:50 PM, Atle Frenvik Sveen <
> atle(at)frenviksveen(dot)net
> > > > wrote:
> > >
> > >> Hi list!
> > >>
> > >> The new Mapview is great, but when you give people something they
> always
> > >> want more, and so do I.
> > >>
> > >> I want to be able to add custom background layers to the existing
> list of
> > >> layers.
> > >>
> > >> I'm thinking that the list of layers should be configurable from the
> > >> Preferences -> Sql editor menu (or somewhere in the Preferences)
> > >>
> > >> Then again, given that I know both Js, Leaflet, Backbone, and
> > >> Python/Flask I guess I should contribute the changes myself rather
> then
> > >> waiting for someone else to do this.
> > >>
> > >
> > > Cool :-)
> > >
> > >
> > >>
> > >> However, I have some questions before I jump right on this task:
> > >>
> > >> First some organizational:
> > >> 1. If I add this, is this something that is welcomed by the project?
> > >>
> > >
> > > Yes!
> > >
> > >
> > >> 2. How do I register a task on https://redmine.postgresql.org
> > >> /projects/pgadmin4/issues
> > >>
> > >
> > > Assuming you have a user account on there, there's a "New Issue" button
> > > towards the top right.
> > >
> > >
> > >> 3. Is it ok to clone the GitHub mirror and submit a PR there?
> > >>
> > >
> > > You're welcome to work in a GitHub mirror of course, but please send
> > > patches here - we won't see GitHub PRs as our primary repo is
> > > git.postgresql.org.
> > >
> > >
> > >>
> > >> Then some tech-related questions:
> > >>
> > >> 1. It seems like window.top.pgAdmin.Browser.
> get_preferences_for_module
> > >> is used for getting preferences from js, and that the
> PreferencesModule
> > >> python class is responsible for managing preferences. But where are
> the
> > >> default preferences listed?
> > >>
> > >
> > > You'll find register_preferences functions in some of the Python
> modules
> > > (e.g. web/pgadmin/dashboard/__init__.py). They tend to have a bunch of
> > > calls in them that look like this:
> > >
> > > self.session_stats_refresh = self.dashboard_preference.register(
> > > 'dashboards', 'session_stats_refresh',
> > > gettext("Session statistics refresh rate"), 'integer',
> > > 1, min_val=1, max_val=999999,
> > > category_label=gettext('Graphs'),
> > > help_str=gettext('The number of seconds between graph samples.')
> > > )
> > >
> > > In this case, the 1 on the beginning of the fourth line is the default
> > > value.
> > >
> > >
> > >> 2. Does the preferences code currently handle editing a list of
> elements?
> > >> I'm thinking that the preferences pane for map layers should be
> something
> > >> like this.
> > >>
> > >>
> > >> name | url
> > >> |
> > >> ----------|-------------------------------------------------
> ----------------|
> > >> ------
> > >> streets | https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
> > >> <http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png> |
> [remove]
> > >> [] | []
> > >> | [add]
> > >>
> > >> 2.1 If it does, where in the code can I find it?
> > >> 2.2 It it doesn't, where in the code can I add it and
> > >> 3. In either case of 2: how do I specify how a preference object for a
> > >> module look like?
> > >>
> > >
> > > I don't believe it does at the moment. Khushboo, am I missing
> something?
> > >
> > > Yes, right, currently we don't have it.
> >
> > You can register the module wise preferences with the
> register_preferences
> > function mentioned by Dave above.
> > At the client side, we create the preferences cache and use the cache in
> > the other JS modules as and when required. Please refer
> > pgadmin/browser/static/js/preferences.js file which is being used to get
> > the cached preferences. You will find the different functions to get the
> > specific preference here.
> >
> > The Preferences class is in web/pgadmin/utils/preferences.py.
> > >
> > > --
> > > 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

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Atle Frenvik Sveen 2018-09-14 09:43:06 Re: Custom layers in PgAdmin IV Mapview
Previous Message Atle Frenvik Sveen 2018-09-14 07:44:36 Re: Custom layers in PgAdmin IV Mapview