[Mapbender-commits] r5999 -
trunk/mapbender/resources/db/pgsql/UTF-8/update
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Thu Apr 22 05:55:01 EDT 2010
Author: armin11
Date: 2010-04-22 05:54:46 -0400 (Thu, 22 Apr 2010)
New Revision: 5999
Modified:
trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.6.1_to_2.7rc1_pgsql_UTF-8.sql
Log:
view and functions to allow search over published wmc by searchmodule
Modified: trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.6.1_to_2.7rc1_pgsql_UTF-8.sql
===================================================================
--- trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.6.1_to_2.7rc1_pgsql_UTF-8.sql 2010-04-22 09:45:43 UTC (rev 5998)
+++ trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.6.1_to_2.7rc1_pgsql_UTF-8.sql 2010-04-22 09:54:46 UTC (rev 5999)
@@ -2282,4 +2282,97 @@
-- increase size of target field
ALTER TABLE gui_element ALTER COLUMN e_target TYPE VARCHAR(255);
+--function to collect the md categories for a single wmc into a column
+
+CREATE OR REPLACE FUNCTION f_collect_topic_cat_wmc(character varying)
+ RETURNS text AS
+ $BODY$DECLARE
+ i_wmc_id ALIAS FOR $1;
+ topic_cat_string TEXT;
+ topic_cat_record RECORD;
+
+BEGIN
+topic_cat_string := '';
+
+FOR topic_cat_record IN SELECT wmc_md_topic_category.fkey_md_topic_category_id from wmc_md_topic_category WHERE wmc_md_topic_category.fkey_wmc_id=$1 LOOP
+topic_cat_string := topic_cat_string || '{' ||topic_cat_record.fkey_md_topic_category_id || '}';
+END LOOP ;
+
+RETURN topic_cat_string;
+
+END;
+$BODY$
+ LANGUAGE 'plpgsql' VOLATILE STRICT;
+ALTER FUNCTION f_collect_topic_cat_wmc(character varying) OWNER TO postgres;
+
+
+
+-- Function: f_collect_searchtext_wmc(varchar)
+
+-- DROP FUNCTION f_collect_searchtext_wmc(varchar);
+
+CREATE OR REPLACE FUNCTION f_collect_searchtext_wmc(varchar)
+ RETURNS text AS
+$BODY$
+DECLARE
+ p_wmc_id ALIAS FOR $1;
+
+ r_keywords RECORD;
+ l_result TEXT;
+BEGIN
+ l_result := '';
+ l_result := l_result || (SELECT COALESCE(wmc_title, '') || ' ' || COALESCE(abstract, '') FROM mb_user_wmc WHERE wmc_id = p_wmc_id);
+ FOR r_keywords IN SELECT DISTINCT keyword FROM
+ (SELECT keyword FROM wmc_keyword L JOIN keyword K ON (K.keyword_id = L.fkey_keyword_id )
+ ) AS __keywords__ LOOP
+ l_result := l_result || ' ' || COALESCE(r_keywords.keyword, '');
+ END LOOP;
+ l_result := UPPER(l_result);
+ l_result := replace(replace(replace(replace(l_result,'Ä','AE'),'ß','SS'),'Ö','OE'),'Ü','UE');
+
+ RETURN l_result;
+END;
+$BODY$
+ LANGUAGE 'plpgsql' VOLATILE;
+ALTER FUNCTION f_collect_searchtext_wmc(varchar) OWNER TO postgres;
+
+
+--set mb_user_mb_group_type
+--of mb_user_mb_group to 1 for root!
+
+UPDATE mb_user_mb_group SET mb_user_mb_group_type = 1 WHERE fkey_mb_user_id = 1 AND fkey_mb_group_id = 20;
+--generate demo group for decentral registrating and publishing services
+
+-- View: search_wmc_view
+
+-- DROP VIEW search_wmc_view;
+--TODO: get group information out of mb_group table instead of ows information, cause in this case there can be more than one different service in a resource
+
+-- View: search_wmc_view
+
+-- DROP VIEW search_wmc_view;
+--TODO: get group information out of mb_group table instead of ows information, cause in this case there can be more than one different service in a resource
+--TODO: set public flag to some wmc docs to generate usefull results
+
+CREATE OR REPLACE VIEW search_wmc_view AS
+ SELECT wmc_dep.fkey_user_id as user_id, wmc_dep.wmc_id , wmc_dep.srs as wmc_srs, wmc_dep.wmc_title , wmc_dep.abstract as wmc_abstract, f_collect_searchtext_wmc(wmc_dep.wmc_id) AS searchtext
+ , wmc_dep.wmc_timestamp, wmc_dep.department, wmc_dep.mb_group_name,wmc_dep.mb_group_title,wmc_dep.mb_group_country, wmc_dep.mb_group_stateorprovince ,f_collect_topic_cat_wmc(wmc_dep.wmc_id) as md_topic_cats,transform(geometryfromtext(((((((((((((((((((('POLYGON(('::text || wmc_dep.minx::text) || ' '::text) || wmc_dep.miny::text) || ','::text) || wmc_dep.minx::text) || ' '::text) || wmc_dep.maxy::text) || ','::text) || wmc_dep.maxx::text) || ' '::text) || wmc_dep.maxy::text) || ','::text) || wmc_dep.maxx::text) || ' '::text) || wmc_dep.miny::text) || ','::text) || wmc_dep.minx::text) || ' '::text) || wmc_dep.miny::text) || '))'::text, regexp_replace(UPPER(wmc_dep.srs), 'EPSG:', '')::INTEGER),4326) AS the_geom, (((((wmc_dep.minx::text || ','::text) || wmc_dep.miny::text) || ','::text) || wmc_dep.maxx::text) || ','::text) || wmc_dep.maxy::text AS bbox
+ FROM ( SELECT mb_user_wmc.wmc_public, mb_user_wmc.maxy ,mb_user_wmc.maxx ,mb_user_wmc.miny ,mb_user_wmc.minx ,mb_user_wmc.srs ,mb_user_wmc.wmc_id, mb_user_wmc.wmc_title, mb_user_wmc.abstract, mb_user_wmc.wmc_timestamp, mb_user_wmc.fkey_user_id, user_dep.mb_group_id AS department, user_dep.mb_group_name,
+user_dep.mb_group_title,user_dep.mb_group_country, user_dep.mb_group_stateorprovince
+ FROM ( SELECT registrating_groups.fkey_mb_user_id AS mb_user_id, mb_group.mb_group_id, mb_group.mb_group_name, mb_group.mb_group_title, mb_group.mb_group_country, mb_group.mb_group_stateorprovince
+ FROM registrating_groups, mb_group WHERE registrating_groups.fkey_mb_group_id = mb_group.mb_group_id) as user_dep, mb_user_wmc
+ WHERE user_dep.mb_user_id = mb_user_wmc.fkey_user_id) wmc_dep WHERE wmc_dep.wmc_public = 1 ORDER BY wmc_dep.wmc_id;
+
+ALTER TABLE search_wmc_view OWNER TO postgres;
+
+-- insert deleteWFSConf modul in admin1
+--
+-- add delete wfs conf module from geoportal.rlp
+--
+INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) VALUES('admin1','deleteWFSConf',2,1,'delete wfs conf','','a','','href = "../javascripts/mod_deleteWfsConf_client.html" target="AdminFrame"',10,1204,250,20,NULL ,'font-family: Arial, Helvetica, sans-serif; font-size : 12px; text-decoration : none; color: #808080;','DELETE WFS CONF','a','','','','AdminFrame','');
+--
+
+
+
+
More information about the Mapbender_commits
mailing list