Skip to content

Latest commit

 

History

History
357 lines (357 loc) · 16.5 KB

PROGRESS.md

File metadata and controls

357 lines (357 loc) · 16.5 KB

Marks the progress of the Interactive Maps Application

Day 1 (29 May 2019)

  • Make new space for application in XWiki
  • Set up reusable Leaflet code from previous application iteration
  • Have a detailed video call with mentor
  • Create a PointClass for storing points
  • Create a MapClass
  • Code for MapSheet for correctly rendering the map from relevant map object data

Day 2 (30 May 2019)

  • Study Solr search query API
  • Make required changes to PointClass
  • Fix exceptions in rendering the map
  • Create a macro #handleMapQuery for processing the data from query
  • Get the data in JSON from the #handleMapQuery macro and supply it to javascript
  • Visualize data on the map using javascript

Day 3 (31 May 2019)

  • Make a page CommonMacros to include common application macros
  • Improve Leaflet jsx code
  • Fit the map to point(s) bounds on load
  • Submit the work done to mentors. Await mentors' review.

Day 4 (1 June 2019)

  • Code for custom marker icon
  • Get the first attachment on a page with PointClass object for marker icon (to be updated)
  • Await mentors' review

Day 5 (2 June 2019)

  • Await mentors' review

Day 6 (3 June 2019)

  • Analyze changes suggested by Stephane
  • Move all application's classes, templates and sheets to directly under Code space
  • Change MapClass's properties defaultZoom (to integer) and query (to textarea)
  • Make TemplateProvider for MapTemplate
  • Add page title to popup information
  • Add livetable for created maps on page Maps.WebHome

Day 7 (4 June 2019)

  • Change MapSheet to neglect pages that are not map items
  • Change Leaflet to ignore pages with no location data
  • Study Solr Search Application
  • Look into Main.SolrSearch and Main.SolrSearchMacros
  • Edit solr search results to output JSON

Day 8 (5 June 2019)

  • Extract macros from Main.SolrSearchMacros
  • Edit search macros to work for maps
  • Display map with search facets

Day 9 (6 June 2019)

  • Make search form visible for default MapSheet
  • Try fixing facet macros not working for MapSheet
  • Use #displaySearchFacetValues macro as an alternative to $facetDisplayer
  • Code to capture XWiki dom update for changes in facets
  • Allow map updates for changes in search and facets

Day 10 (7 June 2019)

  • Make search form and filter widget visible for default MapSheet view
  • Custom config for solr search
  • Merge pull request from @slauriere for museum maps
  • Do not reload map for changes in filters (currently solr filters reload all page content asynchronously)

Day 11-12 (8-9 June 2019)

  • Weekend

Day 13 (10 June 2019)

  • Apply theme colors to map and map items (tiles not included)
  • Fix icon offset of custom markers

Day 14 (11 June 2019)

  • Thoroughly examine Main.SolrSearch for async jsx code
  • Make the map query search asynchronous

Day 15 (12 June 2019)

  • Examine why some museum filters have errors e.g. Germany
  • Fix defective mapData json
  • Change map item limit (in solr query) from 10 items to 50 items

Day 16 (13 June 2019)

  • Add custom space for popups
  • Make popups responsive for easy viewing on small devices

Day 17 (14 June 2019)

  • Add filter controls
  • Add support for search type
  • Change search form to support both location and item type search
  • Remove old search control

Day 18 (15 June 2019)

  • Add list of map results
  • Add link to the map item page for each result
  • Allow moving to the map item location from search results
  • Fix long titles problem in popups

Day 19 (16 June 2019)

  • Holiday

Day 20 (17 June 2019)

  • Analyze releasenotes application
  • Prepare demos and tests

Day 21 (18 June 2019)

  • Examine all POMs and create a new project structure
  • Push the new structure and prepare for release

Day 22 (19 June 2019)

  • Analyze code for data importer by Stephane
  • Create a generalized data importer with itemLabel, lat, lon as basic fields
  • Add support for custom fields by creating a class if required

Day 23 (20 June 2019)

  • Create search control inside map
  • Create an overlay panel over map for search and facets
  • Move map search, search results and facets into the newly created panel
  • Change search type selection layout
  • Write required code in velocity, css and js

Day 24 (21 June 2019)

  • Add fullscreen control
  • Optimize jsx code
  • Fix test module POMs

Day 25 (22 June 2019)

  • Add UI tests

Day 26-40 (23 June - 7 July 2019)

  • Final term exams

Day 41 (8 July 2019)

  • Make attachment whose name starts with "marker" as marker icon
  • Do not reload map for changes in filters
  • Fix facet macros not working for MapSheet (related forum post)
  • Preserve map state after async requests reload the content
  • Support for map states in URL

Day 42 (9 July 2019)

  • Minor updates and fixes

Day 43 (10 July 2019)

  • Fix facets for preserving map state
  • Fix js errors for bad variable name

Day 44 (11 July 2019)

  • Make leaflet controls load faster
  • Dynamically updating URL with map state for each necessary action
  • Fix facets not keeping the map state
  • Update facets URL with map state
  • Always show map item results

Day 45 (12 July 2019)

  • Escape fullscreen mode with the escape key
  • Add map scale
  • Make map size (width and height) configurable
  • Support for custom attribution
  • Show current location error for insecure context
  • Change current location label
  • Other improvements and fixes

Day 46 (13 July 2019)

  • Remove dedicated popup area
  • Use improved leaflet default small popups for displaying point data
  • Other minor fixes

Day 47 (14 July 2019)

  • Shift search control to top left side corner of the map
  • Add close button to map search and filter
  • Change icon of current location control
  • Prepare full application documentation for release

Day 48 (15 July 2019)

  • Try to release the application
  • Try fixing git error in release

Day 49 (16 July 2019)

  • Try to release the application
  • Fix git error (thanks to Thomas)
  • Release again because of accidently releasing two versions
  • Import the application on https://extensions.xwiki.org
  • Announce the release on XWiki forum and dev mailing list

Day 50 (17 July 2019)

  • Use image macro in documentation
  • Add tooltips to leaflet controls
  • Separate advanced map options

Day 51 (18 July 2019)

  • Update tests to support new MapSheet
  • Add new field in MapClass for custom location properties
  • Code for processing custom location property of any class
  • Remove doc extra from Maps.WebHome
  • Preselect MapTemplate for pages in Maps space
  • Remove demo data importer

Day 52 (19 July 2019)

  • Allow options in map configuration for including and configuring facet fields
  • Code for custom facet fields
  • Use static list for MapClass properties which accept multiple values (customLocationProperties, facetFields)

Day 53 (20 July 2019)

  • Create PathClass for path maps
  • Code for processing paths

Day 54 (21 July 2019)

  • Break

Day 55 (22 July 2019)

  • Update leaflet version to 1.5.1
  • Further code for path maps
  • Code for processing source and destination to create paths

Day 56 (23 July 2019)

  • Change PointClass to support separate latitude and longitude values
  • Change all code the uses PointClass to follow the new structure
  • Change all points and maps to use the new PointClass structure

Day 57 (24 July 2019)

  • Try to implement LocationDescriptionClass to update PointClass using an event listener (dropped because event listener requires programming rights)
  • Create Point Editor for creating points using addresses
  • Set up preview map for Point Editor

Day 58 (25 July 2019)

  • Set up location search form for Point Editor
  • Click anywhere on the map preview to select a location
  • Create a point using Point Editor

Day 59 (26 July 2019)

  • Change PathClass to include an array of points rather than just source and destination
  • Update code to support a path between a number of points

Day 60-61 (27-28 July 2019)

  • Weekend

Day 62 (29 July 2019)

  • Update map state for changes in search widget
  • Fix go to path's location on map item results
  • Ask which approach to user for the ShapeClass options property

Day 63 (30 July 2019)

  • Create a macro for repeating setting popup data and common map item options
  • Create ShapeClass
  • Implement polyline shape type

Day 64 (31 July 2019)

  • Go to location of shapes from map results
  • Implement polygon, rectangle, circle and circle marker shape types

Day 65 (1 August 2019)

  • Full screen for map previews
  • Set up shape editor

Day 66 (2 August 2019)

  • Change structure of PointClass to include popup option
  • Use GeoJSON for shapes
  • Change ShapeClass to support GeoJSON
  • Update map data importer for new PointClass structure
  • Set up GeoJSON shapes to be included as map items

Day 67 (3 August 2019)

  • Common function for setting up map search in map previews
  • Edit points directly on the page with a map preview based PointSheet
  • Point Editor as PointSheet for editing and creating points
  • Code for PointSheet
  • Create PointTemplate and PointTemplateProvider

Day 68 (4 August 2019)

  • Break

Day 69 (5 August 2019)

  • Shape Editor as ShapeSheet
  • Edit shapes directly with a preview
  • Map controls as tools for creating shapes using Leaflet.Editable
  • Support for creating shapes and saving them as GeoJSON
  • Go to GeoJSON shape in map results
  • Code optimization

Day 70 (6 August 2019)

  • Break

Day 71 (7 August 2019)

  • Support for editing shapes with ShapeSheet
  • Code optimization

Day 72 (8 August 2019)

  • Break

Day 73 (9 August 2019)

  • Option to specify custom classes for Points
  • Latitude and longitude of points from custom classes
  • Save shape's GeoJSON after vertex changed (not just after commiting a shape)

Day 74 (10 August 2019)

  • Process custom point class to create a map item
  • Take latitude and longitude of custom classes using property names specified

Day 75 (11 August 2019)

  • Create ShapeTemplateProvider
  • Fix velocity error occuring when trying to load shape object with no data
  • Set empty GeoJSON for ShapeSheet if there is no shape data

Day 76 (12 August 2019)

  • Improve code for custom point classes
  • Fix error in demo map points
  • Change latitude and longitude of PointClass from string to double

Day 77 (13 August 2019)

  • Write macro for getting a key value with multiple suffixes
  • Make marker draggable when editing a point (PointSheet)
  • Rename PointClass popupContent property to content
  • Add includePopups option for maps

Day 78 (14 August 2019)

  • Update edit and view modes of PointSheet
  • Show map with a point when viewing a Point object (PointSheet)
  • Show latitude and longitude fields when editing points
  • Allow updating Point location according to custom filled latitude and longitude

Day 79 (15 August 2019)

  • Rename template providers to include "TemplateProvider" suffix (MapTemplateProvider etc.)
  • Update hints of shape and point template providers
  • Use terminal pages by default for template providers except MapTemplateProvider
  • Create PathSheet, PathTemplate for creating a PathTemplateProvider
  • Fix tests failing after updating PointSheet to include latitude and longitude fields

Day 80 (16 August 2019)

  • Update Maps.WebHome to include livetables of Point, Path and Shape objects
  • Improve code of PointSheet and ShapeSheet
  • Show map with shape when viewing a Shape object (ShapeSheet)
  • Add style property to ShapeClass for applying styles to shapes using JSON

Day 81 (17 August 2019)

  • Break

Day 82 (18 August 2019)

  • Editable options for points
  • Update tests to support options for points
  • Update style property of shapes

Day 83 (19 August 2019)

  • Add circle support in GeoJSON so that circle shapes can be processed
  • Set up webjars for Leaflet.Editable and Path.Drag.js
  • Fix error in parsing LeafletUtils jsx

Day 84 (20 August 2019)

  • PointEditor: Place the marker at the searched location
  • Fix errors and warnings in console

Day 85 (21 August 2019)

  • Add indoor structures support
  • Code for IndoorSheet
  • Handle indoor structure as a map item

Day 86 (22 August 2019)

  • Add leaflet-indoor.js as an attachment to LeafletUtils
  • Fork and edit leaflet-indoor to support leaflet 1.5.1
  • Add necessary options to leaflet-indoor.js so that it works with the application
  • Change LeafletUtils code so it works well with the updated leaflet-indoor
  • Deploy forked leaflet-indoor on webjars.org

Day 87 (23 August 2019)

  • Move map rendering specific code from LeafletUtils to MapSheet
  • Create a new jsx for leaflet libraries so they can be parsed in isolation
  • Handle inconsistencies in the name of properties gotten from solr response (get full key name from a short key name to handle suffixes)
  • Fix error occuring because of apostrophe in map data
  • Fix errors in go to location of some map items
  • Full code for map editor
  • Easy creation of Points and Shapes using the map editor

Day 88 (24 August 2019)

  • Create template and template provider for indoor structures
  • Add support for point in indoor structure items
  • Move MapDataImporter as a terminal page
  • Hide all code pages
  • Remove leaflet-indoor.js from LeafletUtils' attachments and add dependency for leaflet-indoor webjar

Marks the progress of the Interactive Maps Application (Old)

Day 1 (18 May 2019)

  • JavaScript jsx code for a simple map with marker and popup
  • Code for creating a new map
  • Code for SimpleMapSheet to correctly edit, create and display the map
  • Support for xwiki/2.1 syntax in popups

Day 2 (19 May 2019)

  • JavaScript jsx code for the Map Editor
  • Code for creating a new map with Map Editor
  • Interactive and preview-based creation of map with Map Editor
  • Implementation of current location leaflet control (only works for secure connections)
  • Implementation of location search leaflet control
  • Synchronized and updated styling for the added controls

Day 3 (20 May 2019)

  • Transfer github repository to xwiki-contrib
  • Create project design page on design.xwiki.org
  • Add description and milestones on XWiki GSoC project page
  • Standard and improved style for creation form of SimpleMapSheet
  • Change textarea of popupData to ckeditor in Map Editor - ToDo: Ask community
  • Add support for custom marker icon

Day 4 (21 May 2019)

  • Create Map.Maps.WebHome for displaying all created maps
  • Minor changes in velocity code for Map Editor
  • Create a leaflet-commons module for common leaflet functions
  • Change leaflet-map javascript code to support general functions
  • Create class for and set up PathMap
  • Analyze OSRM to get path between two points
  • Get and display path between two points as steps (not smooth)

Day 5 (22 May 2019)

  • Get polyline decode from @mapbox/polyline
  • Use decoded polyline geometries from OSRM to generate paths
  • Create reverseGeocode to convert latlng to place name using nominatim
  • Use reverseGeocode as popup for PathMap source and destination
  • Code for creating Path Maps with Map Editor
  • jsx for the Path Maps Map Editor
  • Combine multiple Map Editors on a single page

Day 6-7 (23-24 May 2019)

  • Add distance and duration to routes of Path Map
  • Report the progress to mentors
  • Fix encoding issue in xml when formatting files using mvn xar:format (thanks to Evalica and Enygma for the fix)
  • Start planning for filterable list maps

Day 8-9 (25-26 May 2019)

  • Template providers for creating new maps
  • Improve and synchronize the style for leaflet controls

Day 10 (27 May 2019)

  • Create class for filterable list map objects
  • Start work on Map Editor for filterable list maps

Day 11 (28 May 2019)

  • Improve filterable list map editor
  • Create FilterableListMapSheet and FilterableListMapTemplate
  • Handle multiple field forms in FL Map Editor with same name
  • Display the data in FilterableListMapSheet for manipulating later