Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ability to refresh displayed inline maps' displayed data when you pan/zoom #1934

Closed
3 tasks done
jywarren opened this issue Jan 8, 2018 · 20 comments
Closed
3 tasks done
Labels
break-me-up break up for cleaner code separation, discrete tests, and, easier and iterative collaboration enhancement explains that the issue is to improve upon one of our existing features help wanted requires help by anyone willing to contribute JavaScript Ruby

Comments

@jywarren
Copy link
Member

jywarren commented Jan 8, 2018

Please describe the problem (or idea)

You can embed inline maps using this inline powertag: https://publiclab.org/wiki/inline-maps

The code driving this is here:

https://github.com/jywarren/plots2/blob/184eced60d9d6842cad8df469bb1df2838528522/app/models/concerns/node_shared.rb#L102-L124

And the template is here: https://github.com/jywarren/plots2/blob/master/app/views/map/_leaflet.html.erb

However, when you drag the map, the markers aren't refreshed for the new viewing area.

Let's break this in three:

  1. let's make an API call for data near a point, similar to https://publiclab.org/api/srch/notes?srchString=foo but perhaps https://publiclab.org/api/srch/notes?geo=41.0,-91.3. This could be built out from https://github.com/publiclab/plots2/blob/master/app/api/srch/search.rb#L52-L72, or a new method could be made
  2. let's rewire https://github.com/jywarren/plots2/blob/184eced60d9d6842cad8df469bb1df2838528522/app/models/concerns/node_shared.rb#L102-L124 to load a blank map which then loads the API call for the center point, and displays notes as points on hearing back from the API
  3. let's set the inline map to re-fetch notes near its center point each time the map is panned or zoomed

This is a big multi-part issue that we can solve in three or more steps. Anyone interested in breaking out the first one?

@jywarren jywarren added enhancement explains that the issue is to improve upon one of our existing features help wanted requires help by anyone willing to contribute JavaScript Ruby break-me-up break up for cleaner code separation, discrete tests, and, easier and iterative collaboration labels Jan 8, 2018
@jywarren jywarren added this to the Geographic features milestone Jan 8, 2018
@grvsachdeva
Copy link
Member

@jywarren I want to try this one

@jywarren
Copy link
Member Author

jywarren commented Jan 9, 2018 via email

@grvsachdeva
Copy link
Member

Hi @jywarren, I was just considering all the steps as stated by you.I think(not sure) we can change the flow as - instead of making call to API for near points, can't we modify https://github.com/jywarren/plots2/blob/184eced60d9d6842cad8df469bb1df2838528522/app/models/concerns/node_shared.rb#L102-L124 such as it will receive center point from us and provide us near points and each time pan/zoom is detected we would call the function .The inline tag will be dealt by making an additional function which has to be used only when we have to load the page and at other times we will just give center coordinates to function.

What do you think about this?

@jywarren
Copy link
Member Author

jywarren commented Jan 10, 2018 via email

@grvsachdeva
Copy link
Member

grvsachdeva commented Jan 10, 2018

Hmm...making API can definitely be useful for future implications of this feature so ok, I will stick with your above-stated flow and will open pull soon for the first part.Also, plz suggest changes in #1935 .Thank you.

@grvsachdeva
Copy link
Member

Hi jeff I have used

def self.notes_map(body)
body.gsub(/[^\>`](\<p\>)?\[map\:content\:(\S+)\:(\S+)\]/) do |_tagname|
lat = Regexp.last_match(2)
lon = Regexp.last_match(3)
nids = NodeTag.joins(:tag)
.where('name LIKE ?', 'lat:' + lat[0..lat.length - 2] + '%')
.collect(&:nid)
nids = nids || []
items = Node.includes(:tag)
.references(:node, :term_data)
.where('node.nid IN (?) AND term_data.name LIKE ?', nids, 'lon:' + lon[0..lon.length - 2] + '%')
.limit(200)
.order('node.nid DESC')
a = ActionController::Base.new()
output = a.render_to_string(template: "map/_leaflet",
layout: false,
locals: {
lat: lat,
lon: lon,
items: items
}
)
output
end
end
for fetching coordinates, the function given on your repo's link i.e., https://github.com/jywarren/plots2/blob/184eced60d9d6842cad8df469bb1df2838528522/app/models/concerns/node_shared.rb#L102-L124 is using DrupalNodeCommunityTag model which is not used now

@jywarren
Copy link
Member Author

Aha, true -- thanks! We updated that since.

@sagarpreet-chadha
Copy link
Contributor

@jywarren and @Gauravano , i was wondering if i can do the 2nd and 3rd part of this issue ? This will be exciting !! 😄

@jywarren
Copy link
Member Author

jywarren commented Jan 14, 2018 via email

@sagarpreet-chadha
Copy link
Contributor

sagarpreet-chadha commented Jan 14, 2018

Okay , working on second one . Thanks 😄 .

@sagarpreet-chadha
Copy link
Contributor

sagarpreet-chadha commented Jan 16, 2018

Hey @jywarren and @Gauravano , the JSON format of the new API is :

screen shot 2018-01-16 at 6 46 45 pm

To add markers to maps , we will also need Latitude and Longitude value of each node .
@Gauravano Can you also add Latitude and Longitude value of each node also in API ? Thanks 😄 !

@grvsachdeva
Copy link
Member

grvsachdeva commented Jan 16, 2018

Actually @jywarren I just noted right now that the API I built is fetching all the nodes but what if someone on wiki page used an inline tag like [map: tag:infragram:lat:lon] then, we don't have API for that.So, we need to have 2 different URL one for notes and one for notes with tag.What do you think?Am I talking right?

@jywarren
Copy link
Member Author

Good call -- I think you're right, but we can start the implementation on the 1st, more simple type of query, see how it performs, then create a follow-on task for the tag-based ones.

(If you need to split out a new view for the refreshable map, that's fine -- it's probably good to have a simpler implementation present as long as it works very similarly!)

Modularity! :-)

@grvsachdeva
Copy link
Member

grvsachdeva commented Jan 16, 2018

Ok then @sagarpreet-chadha as per your requirement ,I am updating the API for now

@jywarren
Copy link
Member Author

OK, the API step is done and merged! Reopening for the remaining parts :-)

jywarren pushed a commit that referenced this issue Feb 5, 2018
* Markers loaded from API

* self.notes_map updated

* API url updated

* https instead of http

* MORE THAN 1 MAP ON A PAGE

* Url generalised

* Indentation done

* Indentation 2
Souravirus pushed a commit to Souravirus/plots2 that referenced this issue Mar 12, 2018
…ab#2044)

* Markers loaded from API

* self.notes_map updated

* API url updated

* https instead of http

* MORE THAN 1 MAP ON A PAGE

* Url generalised

* Indentation done

* Indentation 2
jywarren pushed a commit to jywarren/plots2 that referenced this issue Mar 20, 2018
* changed reporters for progress bars (publiclab#2123)

* Implement style guide (publiclab#2124)

* Lock paperclip to required version

* Exclude critical files

* Disable magic comment

* Safe navigate on params

* Move Style/FrozenStringLiteralComment to .rubocop.yml

* Rubocop autofix

* Error posting an answer publiclab#1938 (publiclab#1945)

* form http request changes to post

* Tests for long answer using POST request

* Commented test for GET request

* Uncommented the test for large answers

* Update "read more" link on tag pages to "learn more on the wiki page" (fixes publiclab#2112) (publiclab#2130)

* Add people tab to /spam page for moderators(Fixes publiclab#2079) (publiclab#2109)

* Fixes #publiclab#2079

Fixes publiclab#2079
This commit adds active user tab to publiclab.org/spam.

* Add people tab to /spam page for moderators(Fixes publiclab#2079)

* Stats on profile page (publiclab#2131)

* Added links to the profile page

* Stats display

* Delete sunspot.yml.bkp

* PR to disable Turbolinks just in case. (publiclab#2133)

* Update show.html.erb (publiclab#2135)

* Update _sidebar.html.erb for tab display (publiclab#2134)

* Update _sidebar.html.erb

* Update I18n_test.rb

* minor tweaks (publiclab#2126)

* questions in full text search + show 15 results (publiclab#2136)

* Update typeahead_service.rb

* Update typeahead_service.rb

* Update restful_typeahead.js

* Update revision.rb

* Fixed Rubocop offences (publiclab#2127)

* added link to "title suggestion" in comment editor (publiclab#2155)

closes publiclab#2154

* Redundant method fixture (publiclab#2163)

* [wip] publiclab#1951 Add "Join" button to people lists  (publiclab#1954)

* chg: added button to join the powertag group's tag

* add: added check to see if current_user is available before showing the button

* fix: added defined? to check if the curre_user variable is defined

* fix: added defined? check to see if the current_user variable is defined

* chg: modified redirection for the create action

* chg: added button for when the user is not currently logged in

* add: added current_user as a parameter

* fix: added defined? to check if the curre_user variable is defined

* chg: added button for when the user is not currently logged in

* text tweaks

* tweak

* Update user_tags_controller_test.rb

* Update wiki_controller_test.rb

* Update node_shared.rb

* Update application_helper.rb

* Hopefully fix test failures

* Update application_helper.rb

* Dropdown for recently used tag look corrected (publiclab#2145)

* Add map of people to publiclab.org/people publiclab#1940 (publiclab#2158)

* Added maps

* API made for people maps

* Added API url for People map

* Made helper function for People Map API

* Updated self.people_map

* Created _peopleLeaflet.html.erb

* Drupal_user removed

* Indentation done

* search Recent People functionality

* search Recent People helper

* Add Relationship validations and fix tests (No issue opened) (publiclab#2078)

* Refactor code for user's social links

* Fix Relationship tests

* Add validations to Relationship model

* Contributors for wildcards (publiclab#2176)

*  Make tags visible to other users (fixes publiclab#2138) (publiclab#2147)

*  Make tags visible to other users (fixes publiclab#2138)

 publiclab#2138

 The profile tags are currently only visible to the user themselves or
 to admins. The tags should be visible to everyone, while the "add tags" input should maintain its current visibility status (owner or administrator).

* Add a parent param to the tag/tagging partial.

This cleverly hides the input but only if it is rendered inside the
profile view.

* Improve the condition

* If parent is unset, set parent to nil

* Add ruby-2.3.4 alert to README.md (publiclab#2159)

* Add ruby-2.3.0 alert to README.md

* made it as a small note

* change from 2.3.0 to 2.3.4

* small change

* Changed bundle install statement

* RSS feed on tagged content for author pages (publiclab#2161)

* RSS feed

* Added changes

* Added "comment" and "barnstar" headings to profile nav (publiclab#2166)

* Add "comment" and "barnstar" headings to profile nav

fixes publiclab#2165

* minor changes

* User must be logged out to access /login page (publiclab#2171)

* User must be logged out to access /login page

* Update user_sessions_controller.rb

* Some modification to user dropdown menu on navbar (publiclab#2175)

* Some modification to user dropdown menu on navbar

* Added tests

* Remove redundant require of searchform.js in application.js (publiclab#2183)

* Image added (publiclab#2162)

* Header html nesting fixes (publiclab#2199)

* tweak to location:blurred code for profile tags (publiclab#2202)

* List activities for subscriptions/digest (publiclab#2058)

* Function changed

* test changed

* digest page showing all nodes for now

* Query worked

* unit test added

* view updated

* small change

* small change

* functional test added

* Error messages in flash resolved publiclab#2141 (publiclab#2142)

* added >> to 'add research note' button  (publiclab#2195)

* Add &raquo to line 7 for button

* Attempt to fix failing tests

* Fix test failures

* Redundant node_id removed (publiclab#2192)

* update drupal_user.rb to update status of User record (publiclab#2157)

* update drupal_user.rb to update user.status

fixes publiclab#2156

* minor changes

* minor changes

* minor changes

* changes

* added tests

* fixed spam button in notes partial (publiclab#2200)

* Change heading of Weekly Digest page (publiclab#2205)

* Function changed

* test changed

* digest page showing all nodes for now

* Query worked

* unit test added

* view updated

* small change

* small change

* functional test added

* heading change

* migration fix (publiclab#2208)

* fix for migration (publiclab#2210)

* fix for migration

* Update drupal_user.rb

* Update rss.rss.builder (publiclab#2221)

* Update rss.rss.builder

* Update rss.rss.builder

* Update rss.rss.builder

* fixed issue no. 2204 (publiclab#2211)

* Order by subscription fix (publiclab#2139)

* completed function

* sort by subscription added

* Correction

* fix for current_user

* Headings as links

* Blank Map loaded with call to API (Part 2 of publiclab#1934) (publiclab#2044)

* Markers loaded from API

* self.notes_map updated

* API url updated

* https instead of http

* MORE THAN 1 MAP ON A PAGE

* Url generalised

* Indentation done

* Indentation 2

* Typos corrected (publiclab#2218)

* Update README.md (publiclab#2233)

* barnstar tag commenting (publiclab#2223)

* Add tweet button to suscription share button (publiclab#2217)

* Basic/Normal User not able to delete own wiki page (publiclab#2030)

* if condition changed

* condition added

* functional test added

* changes done

* small changes

* test correction

* small changes in test

* indentation improve

* Even treatment of heading on /wiki (publiclab#2232)

* Added non empty validation for search form Closes publiclab#2181 (publiclab#2182)

* Fix subscription error (publiclab#2225)

* Date of promoted comment to answer adjusted (publiclab#2229)

* time change , mailer remove and test update

* comments addition in test

* comments on profile page fixed (publiclab#2197)

* comments on profile page fixed

fixes publiclab#2196

* minor changes

* written tests

* Added tests (publiclab#2207)

* Redundant getting started removed (publiclab#2235)

* RSS for Tag show with image correction (publiclab#2213)

* RSS for Tag with image correction

* Image links updated

* Updated rss

* Not to show marker on profile page map if tag blurred:true exists . publiclab#2230 (publiclab#2245)

* Indentation + blurred:true tag

Removes marker if the blurred:true tag exists .

* remove marker feature

* fixes to Dangerfile (puts vs. fail) (publiclab#2255)

* Fixes to markdown templates (publiclab#2240)

* Update first-timers-issue-template.md

* Update first-timers-issue-template.md

* Update questions_controller.rb (publiclab#2266)

* Profile tags corrected (publiclab#2270)

* Fixed the bug where profile is not shown on small screens (publiclab#2269)

* Link text modified (publiclab#2249)

* Added pagination for questions (publiclab#2244)

* routes changed (publiclab#2236)

* Change default time zone of RSS for event calendar (publiclab#2279)

* Unnecessary hr removed (publiclab#2283)

* Question error message duplicacy removed (publiclab#2273)

* Update PULL_REQUEST_TEMPLATE.md

* Include mysql configuration file (supersedes publiclab#1428) (publiclab#2320)

* add glyphicons to question-page (publiclab#2319)

* added link to questions on home page (publiclab#2222)

* added link to questions on home page

closes publiclab#2188

* minor changes

* Update home.html.erb

* removed _list partial and unwanted code [issue publiclab#2300] (publiclab#2311)

* removed _list partial and unwanted code

* re-added list partial

* Update CONTRIBUTING.md

* add a feature block to signup form (publiclab#2267)

* Center People Map coordiates (publiclab#2268)

* Tool Tips : regular edit pencil-Edit this wiki page , Delete -Delete this wiki page ,etherpad -practice in a real time doc , revisions-View previous versions  (publiclab#2212)

* Update _header.html.erb

added 
1 .Tool tip for regular edit pencil
2 .Tool tip for delete wiki page
3.Tool tip for revisions

* Update _header.html.erb

* Update _header.html.erb

* Update _header.html.erb

* adding  "delete this wiki page" tooltip

* fixed issue#2324 problem in display of gliphicons (publiclab#2325)

* added up/down arrow icons on sortable headers on tags page (publiclab#2338)

* add missing glyphicons (publiclab#2316)

* Improve readibility of tags page by removing sidebar and set it to full-width (publiclab#2344)

* added count of research notes and comments on profile page (publiclab#2263)

* added count of research notes and comments on profile page

fixes publiclab#2262

* minor changes

* align read more button to the center (publiclab#2317)

* Redundant gemfile.new deleted (publiclab#2349)

* Chat should hover on hovering (publiclab#2342)

* fixed positioning of social media buttons in wiki page (publiclab#2329)

* Edit home action in home controller (publiclab#2327)

* Remove duplicate ids in signin and signup page (publiclab#2238)

* Update show.html.erb

* Digest optimization to exclude tag additions  (publiclab#2351)

* proper digest

* test optimization

* query update

* Draft creation for nodes  (publiclab#2308)

* Status method

* controller changed

* test added for access

* update rubocop file

* fixing test affected by new fixture

* update en.yml

* Updated the social media icons to use  to increase compatibility with all browsers. (publiclab#2348)

* Added functional test for subscribing to a tag. (publiclab#2286)

* fix autolinking of comments (publiclab#2359)

* Added scroll to top in footer (publiclab#2251)

* banned users are visible to /people page for admin (publiclab#2247)

* banned users are visible to /people page for admin

fixes publiclab#2246

* test fixes

* Update wiki_controller.rb (publiclab#2362)

Resolves issue publiclab#2310

* added links for location privacy help page publiclab#2346 (publiclab#2360)

* added links in appropriate places for new location privacy help page

* fixed indentations

* removed gemfile.lock put in git ignore

* fixed gemlock file

* fixed dangling <p> tag removed gemfile.lock from .gitignore [WIP] how do i remove gemfile.lock from the PR

* removed gemfile.lock from local

* changes to gemfile.lcok

* added new lines to the end of changed files

* fixed search error (publiclab#2288)

* Update show.html.erb

* Wiki pages with CRUD as title should not be published (publiclab#2323)

* Wiki pages with CRUD as title should not be published

* Tests refactored

* research and dashboard corrected (publiclab#2302)

* Add warning message re wildcard search (publiclab#2180)

* combined changes by @ina-mastabba

* re-add missing section

* Added initial check for valid email on password reset (publiclab#2315)

* Added initial check through jquery

* Made the code more object oriented

* Modified the code according to ES6 rules

* Changes tag follow popover z-index (publiclab#2253)

* Change /questions page layout (publiclab#2358)

The /questions page was displaying too much information. Now the
page has a clean layout.

* Migration for changing comment status (publiclab#2373)

* migration for comments

* schema.db.example changed

* version updated

* Comment spam moderation Part 2 (publiclab#2305)

* Controller and model method for marking

* Publish comment method added

* test for marking comment

* tests for publish comment

* Small changes

* controller changed

* updated test as per new comment system

* Update DATA_MODEL.md

* Update rss.rss.builder

* Shows Autocomplete drop-down (publiclab#2384)

* ga fixes (publiclab#2390)

* add tab buttons to tag_pages (publiclab#2385)

* Delete location_tags.js (publiclab#2391)

* Delete location_tags.js

* Update application.js

* Update _like.html.erb

* Update per instructions (publiclab#2403)

publiclab#2402

* Adding feature to allow raw HTML pages (publiclab#2406)

* Update show.html.erb

* Update revision.rb

* Update node.rb

* Added omniauth gem (publiclab#2381)

* Pagination and sorting of digest by recency (publiclab#2374)

* paginate and sort

* paginated for 100 items

* Delete README.rdoc (publiclab#2386)

* Replace spaces with hyphens (list of suggested tags and query submitted in the form) (publiclab#2380)

* fix issue publiclab#2335

Fix issue publiclab#2335, replacing spaces with hyphens as people type.

* fixing publiclab#2335

fixes publiclab#2335, replacing all spaces with hyphens

* Update _comment.html.erb (publiclab#2387)

* Added search validation for wiki sidebar search (publiclab#2276)

* Update subscription_mailer.rb (publiclab#2407)

* Update subscription_mailer.rb

* Update subscription_mailer_test.rb

* "Show more" sort bug (publiclab#2416)

* Update _notes.html.erb render "Show # More" as footer - separately from rows

* Update grid.js to detach table footer before sorting and (re)append it after sorting

* Update _header.html.erb (publiclab#2424)

added link to /kits, added link to /tags, changed the "meet people" text to "attend an event", changed order of menu items.

* add sort functionality to tag_for_author questions (publiclab#2376)

* Add larger image to profile page (publiclab#2415)

* add sign removed (publiclab#2434)

* mailer test for barnstar (publiclab#2433)

* Corrected the mistake (publiclab#2409)

* Home controller tests - test redirect and title (publiclab#2371)

* Test homepage redirects to dashboard if user is logged in

* Add title check to homepage test

* added recent notes page (publiclab#2296)

* added recent notes page

* minor tweaks

* add functional tests

* Profile page likes are now rendered on the same page (publiclab#2293)

* Comment and sent email when co-author added (publiclab#2259)

* barnstar tag commenting

* comment addotion on co-author

* mailer for coauthor created

* mailer updated

* mailer finalized

* testing coauthor

* Co-author test done

* tag addition test

* users page sorting with headers completed with backend (publiclab#2355)

* Update Dockerfile (publiclab#2472)

* Node deletion problem while removing spam solved (publiclab#2450)

* solved for answer deleting node

* node optimized

* tests added

* new indices for impressionist (publiclab#2462)

* Add comment icon (publiclab#2442)

* Add methods to User model for verifying user roles (publiclab#2448)

* Add methods to User model for user roles

* Add a comment

* Update _contributors.html.erb to fix note count (publiclab#2479)

* Update _contributors.html.erb

* Update tag_controller_test.rb

* Update _contributors.html.erb

* Minor refactor of Home controller 'activity' (publiclab#2438)

* Minor refactor of Home controller 'activity'

* Fix indentation

* Development script for quick and reliable setup (publiclab#2395)

* Development setup script

* Fixed a typo

* Fixes tag controller "suggested tags" action (publiclab#2477)

issue publiclab#2458

* Update _contributors.html.erb (publiclab#2485)

* Update show.html.erb (publiclab#2487)

* Questions page text tweaks (publiclab#2490)

* Updated application_controller.rb to fix moderation alert message (publiclab#2481)

* Updated application_controller.rb to fix moderation alert message

fixes issue publiclab#2470

* Updated notes_controller_test.rb

* Update notes_controller_test.rb

* Update notes_controller_test.rb

* trigger reload of profile page on adding location tags (publiclab#2350)

* New blog design(issue#2454) (publiclab#2484)

* Replace blog link with stories from Read Stories button (Fixes issue publiclab#2454)

* changed button content(issue#2454)

* Update home.html.erb

* Remove some redundant tests from Home controller (publiclab#2435)

* initial Rails 4.2 port

* changing over to deliver_now for mails

* updated Gemfile

* truncating fixture field

* truncating fixture field

* nother fixture fix! fix!

* nother fixture fix! fix!

* last try with test dates for maps

* truncation in model

* strict: false in database.yml

* back to before_save filter

* back to before_save filter

* deliver_now

* strict back off...

* strict back off...
@sagarpreet-chadha
Copy link
Contributor

We can use this plugin : http://labs.easyblog.it/maps/leaflet-search/ for searching locations on maps (got idea from your comment here ) . What do you think @jywarren ?

@sagarpreet-chadha
Copy link
Contributor

@jywarren , @Gauravano ! Can i also solve this issue ?
The code may be used later if we decide to make a library .
What do you think ?

@jywarren
Copy link
Member Author

jywarren commented Mar 30, 2018 via email

@jywarren
Copy link
Member Author

This would be really amazing to pick back up!

https://publiclab.org/wiki/inline-maps

@jywarren
Copy link
Member Author

jywarren commented Jan 7, 2019

Solved in #4382

@jywarren jywarren closed this as completed Jan 7, 2019
SrinandanPai pushed a commit to SrinandanPai/plots2 that referenced this issue May 5, 2019
…ab#2044)

* Markers loaded from API

* self.notes_map updated

* API url updated

* https instead of http

* MORE THAN 1 MAP ON A PAGE

* Url generalised

* Indentation done

* Indentation 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
break-me-up break up for cleaner code separation, discrete tests, and, easier and iterative collaboration enhancement explains that the issue is to improve upon one of our existing features help wanted requires help by anyone willing to contribute JavaScript Ruby
Projects
None yet
Development

No branches or pull requests

3 participants