-
Notifications
You must be signed in to change notification settings - Fork 5
/
DOCUMENTATION
180 lines (137 loc) · 4 KB
/
DOCUMENTATION
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#
# What we did so far
#
#
# CONSTANTS
PATHS_FOR_BOXES
SEARCHABLE_PAGE_TYPES
Geocommons Tool
---------------
* Crabgrass::ExternalPage
empty mother class for the future external page
* Geocommons
** self.config / self.config=
configuration accessor (loaded from config/geocommons.yml).
Added some validating sugar, so you can use:
Geocommons.config(:api, :maker)
instead of
Geocommons.config[:api][:maker]
** RestAPI
*** self.find(options)
Emits a search query to the GeoCommons Finder API (to /searches.json).
The given options Hash is serialized to the URL query string.
** Overlay
A page-like model, based on Crabgrass::ExternalPage, utilizing the
RestAPI as data backend.
* GeocommonsHelper
Common functions to embed GeoCommons view elements.
** geocommons_maker_iframe(path, html_options={})
returns an <iframe/> to embed the geocommons Maker, with the given path (e.g. /maps/new).
** geocommons_load_map(target, map_id)
returns all required <script/> tags to load a Geocommons map into the given target (a DOM id)
* MapPage
A Page Type representing a GeoCommons Map
# Helpers
#
# ApplicationHelper
* a simple page line
* a deprecated better_hidden_field
# PageHelper
* page_url_for
** returns the internal api - url if an external page or the normal url
* clean_name_for
** used to clean API - namespaces
* PATCHED page_information_box_for
** TODO add better user handling
* PATCHED notices_for
** same as page_information_box_for
* PATCHED page_notice_message
** same as above
* tag_path_with_preffered
** search for one tag with a prefered page type
* external?
** general helper to find out if a page is external
# SearchHelper
#
# NOTE: here is the basic ui magic
* box_for
** creates a DG labeled box
** TODO refactor out css
* dynamic_widgets
** orders the widgets with the preferred widget on top
* widget_for
** returns a widget for a certain page_type with or without pagination
** takes a dom_id to identifiy the widget
** adds the spinner to the boxes
** passes the options with the page type through
** TODO create non-js default behaviour
* widgets_for
** returns various widgets
#
# CONTROLLERS
# SearchController
* index
** CAUGHT 'preferred' from the path
** TODO move this into a before-filter
* render_search_results
** loads all the options, our system takes:
*** > get_options, get_pages
** NOTE here is the xhr - response to queries
*** the @dom_id from the widget
* split_by_page_type
** NOTE: not used
** attempt to bring several pagetypes into one array
* prefix_path
** Add something to the path withour doubles
** TODO somewhere else
* list_partial
** allows intelligent wrapping of search-list-UI
** uses constants:
*** BOX_PARTIALS[@widget]
*** PAGE_TYPE_PARTIALS[@page_type]
*** LEGAL_PARTIALS[@wrapper]
* get_options
** get page_types, dom_id, @diget, @wrapper and @tags
* get_dom_id
** returns a default dom id if none given
* get_page_types
** NOTE this handles the main search logic
** if no type in the path, returns all
** else only the selected ones
** sets also the default page_type
* get_pages
** NOTE: here are external resources recognized
* get_external_results
** Calls the GeoCommons - Overlay API
** TODO generalize this and use it also for maps
# BETTER CONFIGURATION
contains some constans
PATHS_FOR_BOXES
HEADERS_FOR_PAGE_TYPES
SEARCHABLE_PAGE_TYPES
EXTERNAL_PAGE_TYPES
LEGAL_PARTIALS
PAGETYPE_PARTIALS
BOX_PARTIALS
# API - Wrapping
* Overlay
** subclass of ExternalPage
** has a whitelist vor VALIDATTRIBTES
** maps to the internal interface of the GeoCommons::Overlay
** NOTE here lies the magic, that Overlay acts as a page
** allowes pagination, count etc
** TODO allow a generalized api-specification
# PATHFinder
lib/digitalgazette/path_finder
#ParsedPath
* next
* previous
* remove_keyword
* NOTE this is used to have stricter control over the path
#ParsedPathExtension
* the same
* TODO clean!
# DigitalGazette::API
* used to have a simpler interface on the implementation details of the interface
* TODO combine with the REST API ?
* TODO generalize