Re: Custom layers in PgAdmin IV Mapview

From: Atle Frenvik Sveen <atle(at)frenviksveen(dot)net>
To: Khushboo Vashi <khushboo(dot)vashi(at)enterprisedb(dot)com>, Dave Page <dpage(at)pgadmin(dot)org>
Cc: "pgadmin-hackers" <pgadmin-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Custom layers in PgAdmin IV Mapview
Date: 2018-09-14 07:44:36
Message-ID: 1536911076.915765.1507809336.5C9F79F9@webmail.messagingengine.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

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?

-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
> >

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2018-09-14 07:48:30 Re: Custom layers in PgAdmin IV Mapview
Previous Message Khushboo Vashi 2018-09-14 03:24:41 Re: Custom layers in PgAdmin IV Mapview