Files
ROC/modules/taxonomy/handler/taxonomy_vocabulary_handler.e
Jocelyn Fiat ce8de442e9 Implemented taxonomy administration pages
- create term, vocabulary, add or remove term from vocabularies, ...
Fixed content editing related to taxonomy  (especially with multiple terms vs tags).
Fixed various SQL storage issue related to taxonomy and vocabularies.
Added CMS_RESPONSE.wsf_theme as helper.
2015-12-10 11:21:20 +01:00

130 lines
2.9 KiB
Plaintext

note
description: "[
Request handler related to
/taxonomy/vocabulary/
/taxonomy/vocabulary/{vocid}
]"
date: "$Date$"
revision: "$revision$"
class
TAXONOMY_VOCABULARY_HANDLER
inherit
CMS_MODULE_HANDLER [CMS_TAXONOMY_API]
rename
module_api as taxonomy_api
end
WSF_URI_HANDLER
rename
execute as uri_execute,
new_mapping as new_uri_mapping
end
WSF_URI_TEMPLATE_HANDLER
rename
execute as uri_template_execute,
new_mapping as new_uri_template_mapping
select
new_uri_template_mapping
end
WSF_RESOURCE_HANDLER_HELPER
redefine
do_get
end
REFACTORING_HELPER
CMS_API_ACCESS
create
make
feature -- execute
execute (req: WSF_REQUEST; res: WSF_RESPONSE)
-- Execute request handler for any kind of mapping.
do
execute_methods (req, res)
end
uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE)
-- Execute request handler for URI mapping.
do
execute (req, res)
end
uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE)
-- Execute request handler for URI-template mapping.
do
execute (req, res)
end
feature -- HTTP Methods
do_get (req: WSF_REQUEST; res: WSF_RESPONSE)
-- <Precursor>
local
l_page: CMS_RESPONSE
tid: INTEGER_64
s: STRING
do
if attached {WSF_STRING} req.path_parameter ("vocid") as p_vocid then
if p_vocid.is_integer then
tid := p_vocid.value.to_integer_64
end
end
if tid > 0 then
if attached taxonomy_api.vocabulary (tid) as voc then
-- Responding with `main_content_html (l_page)'.
create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, api)
l_page.set_title (voc.name)
taxonomy_api.fill_vocabularies_with_terms (voc)
create s.make_empty
s.append ("<ul class=%"taxonomy-terms%">")
across
voc as ic
loop
s.append ("<li>")
s.append (l_page.link (ic.item.text, "taxonomy/term/" + ic.item.id.out, Void))
if attached ic.item.description as l_desc then
s.append (" : <em>")
s.append (api.html_encoded (l_desc))
s.append ("</em>")
end
s.append ("</li>")
end
s.append ("</ul>")
l_page.set_main_content (s)
else
-- Responding with `main_content_html (l_page)'.
create {NOT_FOUND_ERROR_CMS_RESPONSE} l_page.make (req, res, api)
end
l_page.execute
else
-- Responding with `main_content_html (l_page)'.
create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, api)
create s.make_empty
if attached taxonomy_api.vocabularies (0, 0) as lst then
s.append ("<ul class=%"taxonomy-vocabularies%">")
across
lst as ic
loop
s.append ("<li>")
s.append (l_page.link (ic.item.name, "taxonomy/vocabulary/" + ic.item.id.out, Void))
s.append ("</li>")
end
s.append ("</ul>")
else
s.append ("No vocabulary!")
end
l_page.set_main_content (s)
l_page.execute
end
end
end