Re: Custom layers in PgAdmin IV Mapview

Поиск
Список
Период
Сортировка
От Khushboo Vashi
Тема Re: Custom layers in PgAdmin IV Mapview
Дата
Msg-id CAFOhELfmo8ZHpPsYtkmyMvkNk-RJHCNGv1PAzXhhXMOCbQfJuA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Custom layers in PgAdmin IV Mapview  (Dave Page <dpage@pgadmin.org>)
Ответы Re: Custom layers in PgAdmin IV Mapview
Список pgadmin-hackers


On Thu, Sep 13, 2018 at 8:10 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Sep 13, 2018 at 2:50 PM, Atle Frenvik Sveen <atle@frenviksveen.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 | [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

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Dave Page
Дата:
Сообщение: Re: Custom layers in PgAdmin IV Mapview
Следующее
От: Atle Frenvik Sveen
Дата:
Сообщение: Re: Custom layers in PgAdmin IV Mapview