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

Add ability to filter Table of Contents by facets #39

Closed
torrin47 opened this issue Oct 15, 2015 · 15 comments
Closed

Add ability to filter Table of Contents by facets #39

torrin47 opened this issue Oct 15, 2015 · 15 comments

Comments

@torrin47
Copy link
Contributor

Data categories, subcategories, and communities should all be available filters.

Two presented TOCs (search tool and filter) have been combined into one larger TOC - both functions were presented as the "look" users would like. ii. 4 basic panels: select geography, select data categories, select subcategories (sometimes hidden), and layer list. Select multiple communities,icons grayed or color depending on status. Refer to mockup pdf for proposed look and feel.

@torrin47
Copy link
Contributor Author

At one point in our mockup discussions, we discussed separating this layer selection/filter functionality from the standard Esri Table of contents - making layer selection into a separate widget that would be loosely coupled with the Esri TOC. EJScreen was our model for this discussion:
http://ejscreen.epa.gov/mapper/
image
This still seems like a pretty viable model worth considering.

@torrin47
Copy link
Contributor Author

The design implication seems to be that the table of contents will actually be separated out into two different widgets - an enhanced version of the locallayer widget that contains no layers at startup, and as layers are added to it at runtime allows for interactions with those layers - legend, transparency, etc. - and a second widget that contains all of the layer selection/filter/search functionality (and possibly metadata links?) that pushes selected layers to the first widget. The second widget we'd be building pretty much from scratch.

@Baohong
Copy link
Contributor

Baohong commented Oct 15, 2015

Agree with Torrin, the second widget (selection/filter/search) should be able to read a json file which is very similar to the config.json in the original Local layer. And the config.json file in the original Local layer could be taken out. That is, local layer dose not need config.json to add layers, but rather, it communicates with selection/filter/search widget (the second one mentioned earlier) to add or remove layers to/from map. The communication could be a data structure defined by the programmer and triggered by the filter widget.
It might be efficient to code for local layer widget and filter widget at the same time and by the same person ---- the two widgets are independent but could be tested from each other and the communication between the two could be designed by the same programmer with less effort.

@brosenbaum
Copy link
Contributor

And if I have the right picture in my mind, I agree with both Torrin and Baohong. I think if we can clarify where the changing of symbology will be (do we lean on EJScreen for this too?), we can start down this path.

@Baohong
Copy link
Contributor

Baohong commented Oct 30, 2015

Since I need to make local layer widget to communicate with filter widget, I made a practice of communicating with two sample widgets which could be found in arcgis-web-appbuilder-1.2\client\stemapp\widgets\samplewidgets\WidgetCommunication. You could ignore this comment if you already known how to use this sample.

Explanation of communicating is explained in https://developers.arcgis.com/web-appbuilder/guide/communication-between-widgets.htm

Here is how I practice this two widgets:
1. Put the two widgets WidgetA and WidgetB in folder widgets.
2. Add the reference of WidgetA and WidgetB in config.json just below the reference of "Measurement", like
{
"name" : "Measurement",
"label" : "Measurement",
"version" : "1.3",
"uri" : "widgets/Measurement/Widget",
"index" : 4,
"id" : "widgets_Measurement_Widget_36",
"config" : "configs/Measurement/config_Measurement.json"
}, {
"name" : "WidgetA",
"label" : "WidgetA",
"version" : "1.3",
"uri" : "widgets/WidgetA/Widget",
"index" : 5,
"id" : "widgets_WidgetA_Widget_37"
}, {
"name" : "WidgetB",
"label" : "WidgetB",
"version" : "1.3",
"uri" : "widgets/WidgetB/Widget",
"index" : 6,
"id" : "widgets_WidgetB_Widget_38"
}
3. Refresh local link of EnviroAtlas, then WidgetA and WidgetB will appear just besides Widget "Measurement". Click button in WidgetA and message will be shown in WidgetB. Really simple!

I will work on LocalLayer widget to perform as sample WidgetB to receive data string. Filter widget could perform as sample WidgetA to publish data string. After finishing LocalLayer, I will work on Layerlist widget to add the dropdown menu items to add the metadata links.

@torrin47 torrin47 modified the milestone: Milestone 5 Dec 16, 2015
@torrin47 torrin47 modified the milestones: Milestone 5, Milestone 6 Dec 23, 2015
@Baohong Baohong modified the milestone: Milestone 6 Jan 7, 2016
@torrin47 torrin47 modified the milestone: Milestone 7 Jan 13, 2016
@torrin47 torrin47 assigned brosenbaum and unassigned Baohong Jan 13, 2016
@torrin47
Copy link
Contributor Author

Getting Annie's confirmation of flow.

@torrin47 torrin47 modified the milestones: Milestone 7, Milestone 8 Feb 4, 2016
@brosenbaum
Copy link
Contributor

Below is a series of emails from Ali and me about the document sent to discuss flow.

From: Mackey, Alexandra
Sent: Wednesday, February 03, 2016 3:33 PM
To: Rosenbaum, Barbara Rosenbaum.Barbara@epa.gov; Neale, Anne Neale.Anne@epa.gov; Moore, Rose-Marie Moore.Rose-Marie@epa.gov
Cc: Pierson, Suzanne Pierson.Suzanne@epa.gov; Ji, Baohong Ji.Baohong@epa.gov; Hultgren, Torrin Hultgren.Torrin@epa.gov; Yarnell, David Yarnell.David@epa.gov; Daniel, Jessica Daniel.Jessica@epa.gov
Subject: RE: Questions for JavaScript Application

Hi all,

We finally had a chance to chat about your second question related to the selection of different geographies.

We decided that, in the layer selection list, communities should be grouped together behind the scenes for each layer. (See image below) So, if you selected MWI and PAZ, then you could select the ‘Percent Forest’ layer once and it would be added to the map for both cities. We like this version because it limits the length of the layer selection list, even after we have 50+ communities.

ali1

We also talked about how the layers would then be added to the map. I’m sure we’ll need to discuss this in much more detail, but we’ve got a few ideas. I’m not sure how much you want to know at this point, but I can absolutely be more detailed about this if/when needed.

  1. If you add Percent Forest for one community, it would load the community as normal with breaks/symbology/classification associated with that community.
  2. If you add Percent Forest for two or more communities, it would load each community layer separately but the breaks/symbology/classification would be associated with the combination of communities you added.

ali2

A couple other thoughts we had during this discussion:

  1. If you select “All Communities” in the initial geography selection – could this be different than selecting all the communities individually? If you added Percent Forest after selecting “All Communities”, it would add one layer with the block groups and breaks/symbology/classification for ALL communities.

  2. Can the Change Symbology widget have the following break/classification options? (Option B is new compared to the Flex map)

a) Classify/break based on just the community of interest

b) Classify/Break based on communities loaded in the map – or some specified subset – this would allow for comparison between similar cities without interference from dissimilar cities: classify percent forest for well-forested PME/PitPA//POR without skewing from lightly-forested PAZ/FCA/PNJ

c)Classify/break based on ALL communities whether loaded or not
3) Do we need to do something different with NULLs (currently -99999) to make the symbology widget function better? Will the symbology widget be able to handle NULLs? Will/Can we maintain the labeling of NULLs after a user changes the symbology?

If you missed it last week, my answers to the other questions are below. I’m not sure if we’re meeting tomorrow or not, but we can chat about all this then or sometime soon.

Thanks,
Ali

I had an IM conversation with Ali about adding the various geographies for communities. This was prompted by discussion/questions about the flow diagram.

Since our list could become quite long if, say, 5 communities were added individually, Ali wondered about “grouping” the individual community layers by “layer name” and having the option to add the whole group rather than selecting individual communities for each layer. If we do this, would we save real estate if the layer groups could be shown as collapsed?

For example – adding PAZ, PME, TFL and GBWI layers – filtering for the word “Proximity” we might end up with 8 layers for each community (Park Proximity Buffer, Proximity to road greater than 300m, Proximity to roads less than 300m, % pop within 500m proximity of a park, etc…)

Could we group like this in the filter list:
[] Park Proximity Buffer
[]Park Proximity Buffer – GBWI
[]Park Proximity Buffer – PAZ
[]Park Proximity Buffer – PME
[]Park Proximity Buffer – TFL
[] % pop within 500m proximity…
[] % pop within 500m proximity… - GBWI

Any thoughts????! Not possible with the selection process and current layer list? Great idea but a TON of effort?

From: Mackey, Alexandra
Sent: Wednesday, January 27, 2016 12:28 PM
Subject: RE: Questions for JavaScript Application

Hi all,

I just wanted to send a response to Barb’s email this week to let know you we haven’t lost track of it. The first and third questions are pretty simple and I’ve included responses in green below that are accurate to the best of my knowledge at this point.

The second question about geography selection is pretty big in that it dictates how we eventually add the communities to the map. That’s definitely something Annie will need to weigh in on but she’s not here this week. We will get together early next week to discuss.

Sorry we don’t have better answers yet!

Thanks,
Ali

From: Rosenbaum, Barbara
Sent: Thursday, January 21, 2016 9:16 AM
Subject: Questions for JavaScript Application

Hi Annie and Rosie –

We have a few question to open for discussion about the flow for the EnviroAtlas JavaScript application in relation to “filtering and searching” for layers. The attached PowerPoint slides show the flow we are using to create the Search/Filter portion of EnviroAtlas. I have placed numbers on slide 1 which are associated with the questions below.

  1.  We had discussed the ability to “search” the layers using words – we would like to put an extent on what is searched. For example, should we limit the text search to the layer name, description, “categories”(benefit and subcats), and tags? (We will have a separate geographic search area so searching by community name should not be necessary as text search.)
    

I think, in my mind at least, we were planning on limiting the search to the fields you listed. One thing we need to know is how specific the search is: kids vs. kid; child vs. children; Word vs. word; etc.

  1.  In the selection of “Geography” – we expanded the selection flowchart onto the second slide of the PowerPoint slides. We are wondering if you want multiple communities added as a “grouped” layer or as individual layers. For example, add MWI or PAZ as separate layers? Or add as “MWI and PAZ” as one layer. If we add them as separate layers, the selection list may become quite long. The “all communities” option would state the selection is for all communities even though some data may be absent for a particular community – such as water views being absent in some communities. That said, maybe we should put the community abbreviations (e.g. DNC) in the community layer tags?
    

Working on it… hopefully will have some answers before the next call.

  1.  The current flow/logic we are planning to use is a user would select one benefit category (BC) and the subcategories would be available for that BC. With this, multiple subcategories could be selected. Or, the user could select more than one BC and the sub categories would not be displayed. If we were to include multiple BCs with subcategories, the description of the subcategories would need to include which BC it is associated with and our concern is that the text may become too long/cumbersome for the pulldown box.
    

Initially, our plan was to only have subcategories display for one BC at a time. If two were selected, the subcategory menu would disappear. As far as I know, that still holds.

Other questions or comments –
The tags are not currently displayed anywhere – is this what you are expecting?
Yes, tags should be totally internal to us.

Slide 3 is carried forward from the earlier examples and is included for reference, slide 4 contains a very draft-y example of a modified layout which includes the layer list and the search/filter sections. Some action buttons are missing from this example.

If you would like to discuss this on the call today (if we are having it…) that would be great. Also, we can ”discuss” through the email chain if you have any answers (or more questions) before the next code call on Feb 4, 2016.

Thanks,

Barb (and the rest of the crew)

@torrin47 torrin47 modified the milestones: Milestone 8, Milestone 9 Feb 16, 2016
@torrin47 torrin47 modified the milestones: Milestone 9, Milestone 8 Feb 16, 2016
@torrin47 torrin47 modified the milestones: Milestone 9, Milestone 10 Mar 9, 2016
@torrin47 torrin47 modified the milestone: Milestone 11 Mar 30, 2016
@torrin47
Copy link
Contributor Author

One option to consider for category/subcategory tree functionality.
http://thejekels.com/dojo/cbtree_AMD.html

@torrin47 torrin47 modified the milestones: Milestone 11, Milestone 12 Apr 18, 2016
@brosenbaum
Copy link
Contributor

Will wait to send updated spreadsheet to migrate to JSON until after client discussion today. New mockup may make the current version not worth much until after the discussion.

FilterSearch_New_MockUp_04182016.pdf

@torrin47
Copy link
Contributor Author

Sooo.... where do we stand on creating a new JSON file? Back to square one? Can we hammer out an attribute schema with some placeholder data just to get a start on the UI?

@brosenbaum
Copy link
Contributor

Not square one - I am working on it - using old list of Suppy/demand/driver
from ancient files.... But, can get everything else ready.

On Tue, Apr 19, 2016 at 4:19 PM, Torrin Hultgren notifications@github.com
wrote:

Sooo.... where do we stand on creating a new JSON file? Back to square
one? Can we hammer out an attribute schema with some placeholder data just
to get a start on the UI?


You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub
#39 (comment)

Barbara Rosenbaum
Innovate!, Inc.
Office: (541) 929-6622
Message: (703) 922.9090 x 739
brosenbaum@innovateteam.com

Innovate!, Inc. is a Virginia-based 8(a), Hispanic- and woman-owned
business delivering Geospatial, Information Technology, Security, Business
Consulting, Project Management and Executive Coaching solutions to our
government and private sector clients. Check us out at www.innovateteam.com.

@brosenbaum
Copy link
Contributor

Here is an updated spreadsheet to convert to json.

EnviroAtlas4JSON_DRAFT20160421_fakeSDD.xlsx

Added columns for BC and made "fake/filler" text for supply/demand/driver and other "subcategories". This is a work in progress!
image

Please ignore column "T" - it is a formula. and you may not need to import columns J through Q, also, since these are summarized in column "S".

If you have questions, please let me know.

@torrin47
Copy link
Contributor Author

I'm not seeing a column for metadata link - otherwise it looks good.

On Thu, Apr 21, 2016 at 12:31 PM, brosenbaum notifications@github.com
wrote:

Here is an updated spreadsheet to convert to json.

EnviroAtlas4JSON_DRAFT20160421_fakeSDD.xlsx
https://github.com/Innovate-Inc/EnviroAtlas/files/230579/EnviroAtlas4JSON_DRAFT20160421_fakeSDD.xlsx

Added columns for BC and made "fake/filler" text for supply/demand/driver
and other "subcategories". This is a work in progress!
[image: image]
https://cloud.githubusercontent.com/assets/6422486/14721663/75ab6ffa-07bc-11e6-976a-090da6822441.png

Please ignore column "T" - it is a formula. and you may not need to import
columns J through Q, also, since these are summarized in column "S".

If you have questions, please let me know.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#39 (comment)

Torrin Hultgren
Senior Manager, Geospatial Solutions
Innovate!, Inc.
O: (703) 922-9090 x737

http://www.innovateteam.com

Innovate!, Inc. is a Virginia-based 8(a), Hispanic- and woman-owned
business delivering Geospatial, Information Technology, Security,
Business Consulting, Project Management and Executive Coaching
solutions to our government and private sector clients. Check us out
at www.innovateteam.com.

@torrin47
Copy link
Contributor Author

Posted new JSON file here:
https://github.com/Innovate-Inc/EnviroAtlas/blob/master/scripts/config.json
Will update again when metadata link is included.

On Thu, Apr 21, 2016 at 3:04 PM, Torrin Hultgren <thultgren@innovateteam.com

wrote:

I'm not seeing a column for metadata link - otherwise it looks good.

On Thu, Apr 21, 2016 at 12:31 PM, brosenbaum notifications@github.com
wrote:

Here is an updated spreadsheet to convert to json.

EnviroAtlas4JSON_DRAFT20160421_fakeSDD.xlsx
https://github.com/Innovate-Inc/EnviroAtlas/files/230579/EnviroAtlas4JSON_DRAFT20160421_fakeSDD.xlsx

Added columns for BC and made "fake/filler" text for supply/demand/driver
and other "subcategories". This is a work in progress!
[image: image]
https://cloud.githubusercontent.com/assets/6422486/14721663/75ab6ffa-07bc-11e6-976a-090da6822441.png

Please ignore column "T" - it is a formula. and you may not need to
import columns J through Q, also, since these are summarized in column "S".

If you have questions, please let me know.


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#39 (comment)

Torrin Hultgren
Senior Manager, Geospatial Solutions
Innovate!, Inc.
O: (703) 922-9090 x737

http://www.innovateteam.com

Innovate!, Inc. is a Virginia-based 8(a), Hispanic- and woman-owned
business delivering Geospatial, Information Technology, Security,
Business Consulting, Project Management and Executive Coaching
solutions to our government and private sector clients. Check us out
at www.innovateteam.com.

Torrin Hultgren
Senior Manager, Geospatial Solutions
Innovate!, Inc.
O: (703) 922-9090 x737

http://www.innovateteam.com

Innovate!, Inc. is a Virginia-based 8(a), Hispanic- and woman-owned
business delivering Geospatial, Information Technology, Security,
Business Consulting, Project Management and Executive Coaching
solutions to our government and private sector clients. Check us out
at www.innovateteam.com.

@brosenbaum
Copy link
Contributor

... and updates to all other fields with "correct" data....
planning to make some metadata compilations in the EDG first - that or add a field to the databases with the UUID (or set of UUIDs for all communities - compilation preferred!).

Baohong - some of the layer names in the JSON/excel may be slightly different than the current service layer names. The blue text in the excel sheet - column C is new, the red text is the original/current layer names.

@torrin47 torrin47 modified the milestones: Milestone 12, Milestone 13 May 4, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants