[Cartoweb-users] Plugin search not working

Oliver Christen oliver.christen at camptocamp.com
Tue Apr 17 09:07:57 EDT 2007


i think POSTGIS_MAJ


  Well yes, you got it right, it is empty. So to fill it, what do I have to put in ?

  Véronique


  Oliver Christen a écrit : 
    I forgot to say the most important:
    be sure the value of that input is not empty

    regards
    Oliver
      Hi

      there are no search_config parameter set in the post request. I think the main search input name must be search_config
      do you have a <input type="hidden" id="search_config" name="search_config"  element in your search template ?

      regards
      Oliver

        ----- Original Message ----- 
        From: Véro Herzl - Bluewin 
        To: Damien Corpataux ; cartoweb-users at lists.maptools.org 
        Sent: Tuesday, April 17, 2007 2:21 PM
        Subject: Re: [Cartoweb-users] Plugin search not working


        OK, well, I am in the development mode but with Ajax on and cartoclient.Ajaxheader,tpl, so the error message is for the Ajay part


--- Action Search.DoIt triggered ---

Calling Search.DoIt onBeforeAjaxCall()

Calling AjaxPlugins.Common.onBeforeAjaxCall()
Initiating AJAX request
Pending actions: 1
GET params:
ajaxActionRequest=Search.DoIt&
POST params:

posted=1&js_folder_idx=5&js_toolbar_idx=&selection_type=&selection_coords=&features=&js_accounting=version=0;
hasJava=true;winInnerWidth=1024;winInnerHeight=578;screenWidth=1024;
screenHeight=768;screenColorDepth=32&outline_label_text=votre 
titre&tool=zoomin&project=n16&recenter_x=&recenter_y=&recenter_doit=0&shortcut_doit=0&openNodes=&layers
[]=OPA&layers[]=OPB&layers[]=OPC&layers[]=OPD&layers[]=OPE&layers[]
=OPF&layers[]=OPG&layers[]=OPH&layers[]=N16&layers[]
=POSTGIS_MAJ&layers[]=EDITPOINT&layers[]=EDITPOLY&layers[]
=EDITLINE&pdfMarginX=20&pdfMarginY=20&pdfA4x=210&pdfA4y=297&pdfA3x=297&pdfA3y=420&pdfOrientation=portrait&pdfMapAngle=&pdfMapCenterX=&pdfMapCenterY=&pdfTitle=&pdfNote=&pdfScalebar=&pdfLegend=0&viewTitle=&author=&handleView=0&locate_MAJ=&locate_MAJ2=&id_recenter_ids=&search_mandat_n16=N2354&search_travaux=&search_date_txt=&search_en_cours=&search_config=&search_sort_column=&search_sort_direction=asc&search_number=&outline_mask=no&outline_point_symbol=circle&outline_point_size=10&outline_line_size=3&outline_line_transparency=100&outline_polygon_transparency=60&edit_validate_all=0&recenter_scale=0&shortcut_id=-
1&mapsize=1&pdfFormat=A4&pdfResolution=96&pdfScale=2500&id_recenter_layer=MAJ&edit_layer=0&
Waiting for response...
Response received!
Error: AjaxHandler.actionRequest(): received response is 
malformed!

      And below it, I got the following failure :

        Failure


        CartoWeb version: 3.3.0 [$Revision: 1.2 $]

        class:   CartoclientException

        message:   Empty config or config not found

        Backtrace:


        file: UNKNOWN - UNKNOWN

        call: ClientSearch->handleHttpPostRequest(Array(62))


        file: 270 - C:\wamp\www\cartoweb3\common\PluginManager.php

        call: call_user_func_array(Array(2), Array(1))


        file: 320 - C:\wamp\www\cartoweb3\common\PluginManager.php

        call: PluginManager->callPluginImplementing(Object(ClientSearch), "GuiProvider", "handleHttpPostRequest", Array(1))


        file: 685 - C:\wamp\www\cartoweb3\client\Cartoclient.php

        call: PluginManager->callEnabledPluginsImplementing(1, "GuiProvider", "handleHttpPostRequest", Array(1))


        file: 995 - C:\wamp\www\cartoweb3\client\Cartoclient.php

        call: Cartoclient->callEnabledPluginsImplementing(1, "GuiProvider", "handleHttpPostRequest", Array(62))


        file: 1220 - C:\wamp\www\cartoweb3\client\Cartoclient.php

        call: Cartoclient->doMain()


        file: 38 - C:\wamp\www\cartoweb3\htdocs\client.php

        call: Cartoclient->main()


        file: 3 - C:\wamp\www\cartoweb3\htdocs\n16.php

        call: require_once("C:\wamp\www\cartoweb3\htdocs\client.php")






        Damien Corpataux a écrit : 
          Hello,

          if you are in development mode, when an error occurs, an alert box is displayed and allows you to print the cartoweb error message. Can you post this error message?

          Regards,
          Damien


          veroh at bluewin.ch wrote: 
Hello,

I am trying to implement the plugin search in my project but I got 
the following error

--- Action Search.DoIt triggered ---

Calling Search.DoIt onBeforeAjaxCall()

Calling AjaxPlugins.Common.onBeforeAjaxCall()
Initiating AJAX request
Pending actions: 1
GET params:
ajaxActionRequest=Search.DoIt&
POST params:

posted=1&js_folder_idx=5&js_toolbar_idx=&selection_type=&selection_coords=&features=&js_accounting=version=0;
hasJava=true;winInnerWidth=1024;winInnerHeight=578;screenWidth=1024;
screenHeight=768;screenColorDepth=32&outline_label_text=votre 
titre&tool=zoomin&project=n16&recenter_x=&recenter_y=&recenter_doit=0&shortcut_doit=0&openNodes=&layers
[]=OPA&layers[]=OPB&layers[]=OPC&layers[]=OPD&layers[]=OPE&layers[]
=OPF&layers[]=OPG&layers[]=OPH&layers[]=N16&layers[]
=POSTGIS_MAJ&layers[]=EDITPOINT&layers[]=EDITPOLY&layers[]
=EDITLINE&pdfMarginX=20&pdfMarginY=20&pdfA4x=210&pdfA4y=297&pdfA3x=297&pdfA3y=420&pdfOrientation=portrait&pdfMapAngle=&pdfMapCenterX=&pdfMapCenterY=&pdfTitle=&pdfNote=&pdfScalebar=&pdfLegend=0&viewTitle=&author=&handleView=0&locate_MAJ=&locate_MAJ2=&id_recenter_ids=&search_mandat_n16=N2354&search_travaux=&search_date_txt=&search_en_cours=&search_config=&search_sort_column=&search_sort_direction=asc&search_number=&outline_mask=no&outline_point_symbol=circle&outline_point_size=10&outline_line_size=3&outline_line_transparency=100&outline_polygon_transparency=60&edit_validate_all=0&recenter_scale=0&shortcut_id=-
1&mapsize=1&pdfFormat=A4&pdfResolution=96&pdfScale=2500&id_recenter_layer=MAJ&edit_layer=0&
Waiting for response...
Response received!
Error: AjaxHandler.actionRequest(): received response is 
malformed!

I have a search.ini file in my client_conf :

config.POSTGIS_MAJ.provider.type = fulltextTable
config.POSTGIS_MAJ.provider.table = maj2
config.POSTGIS_MAJ.provider.id = gid
config.POSTGIS_MAJ.provider.columns = mandat_n16, travaux, 
date_txt, en_cours
config.POSTGIS_MAJ.provider.fulltextColumns = mandat_n16, travaux, 
date_txt, en_cours
config.POSTGIS_MAJ.provider.sortColumn = date_txt
config.POSTGIS_MAJ.provider.sortDirection = asc
config.POSTGIS_MAJ.provider.sortPriorities = date_txt, mandat_n16, 
travaux, en_cours
config.POSTGIS_MAJ.provider.labels = mandat_n16, travaux, date_txt, 
en_cours

config.POSTGIS_MAJ.formatter.type = smarty
config.POSTGIS_MAJ.formatter.template = search_results

Where POSTGIS is the layer I declared in my MAP file which is a 
POSTGRESQL/POSTGIS table (maj2) and gid is the 'id_attribute_string'

I have also one in the server_side :

dbType = pgsql
dsn = pgsql://postgres:afgan6@localhost:5432/demo_n16

config.POSTGIS_MAJ.provider.type = fulltextTable
config.POSTGIS_MAJ.provider.table = maj2
config.POSTGIS_MAJ.provider.id = gid
config.POSTGIS_MAJ.provider.columns = mandat_n16, travaux, 
date_txt, en_cours
config.POSTGIS_MAJ.provider.fulltextColumns = mandat_n16, travaux, 
date_txt, en_cours
config.POSTGIS_MAJ.provider.sortColumn = date_txt
config.POSTGIS_MAJ.provider.sortDirection = asc
config.POSTGIS_MAJ.provider.sortPriorities = date_txt, mandat_n16, 
travaux, en_cours
config.POSTGIS_MAJ.provider.labels = mandat_n16, travaux, date_txt, 
en_cours

config.POSTGIS_MAJ.formatter.type = smarty
config.POSTGIS_MAJ.formatter.template = search_results

I modified my cartoclient.tpl by adding two lines

{if $search_active|default:''}<script type="text/javascript" src="
{r type=js plugin=search}Search.ajax.js{/r}"></script>{/if}
which is just after the one for the Ajax ({if $ajaxOn|default:''} 
etc..)
and in the div="container", I added in one of my div=folder : 
{if $search_active|default:''} {$search} {/if}

I got in templates, two files :

search.tpl:

<div id="search_div">
	<fieldset>
		<legend>{t}Search{/t}
		</legend>
		<br/>
		<table width="100%">
			<tr>
			<td>
				{t}Mandat: {/t}
			</td>
			
			<td>
				<input type="text" id="search_mandat_n16" name="
search_mandat_n16" size="13"/>
			</td>
			</tr>
			
			<tr>
			<td>
				{t}Type de travaux: {/t}
			</td>
			
			<td>
				<input type="text" id="search_travaux" name="search_travaux" 
size="13"/>
			</td>
			</tr>

			<tr>
			<td>
				{t}Date: {/t}
			</td>
			
			<td>
				<input type="text" id="search_date_txt" name="search_date_txt" 
size="13"/>
			</td>
			</tr>			
			
			<tr>
			<td>
				{t}En cours ou non: {/t}
			</td>
			
			<td>
				<input type="text" id="search_en_cours" name="search_en_cours" 
size="13"/>
			</td>
			</tr>
		</table>
		
		<p>
			<input type="submit" value="{t}Search{/t}" class="form_button" 
onclick="Javascript: CartoWeb.trigger('Search.DoIt'); return false;" 
/>
			<input type="hidden" id="search_config" name="search_config" />
			<input type="hidden" id="search_sort_column" name="
search_sort_column" />
			<input type="hidden" id="search_sort_direction" name="
search_sort_direction" value="asc" />
			<input type="hidden" id="search_number" name="search_number" />
					
			<div id="search_results_div">
			</div>
		</p>
	</fieldset>
</div>

and search_results.tpl

{if $table->numRows > 0}
	<table class="n16table">
		<tr>
			<th>
				{t}Id{/t}
			</th>
			{foreach from=$table->columnIds item=column}
				<th>
					<a href="Javascript: order('{$column}');">{t}{$column}{/t}
</a>
				</th>
			{/foreach}
		</tr>
		
		{foreach from=$table->rows item=row}
		<tr>
		{foreach from=$row->cells item=value}
		<td>
			<a href="Javascript: recenter('{$row->rowId}');">{$value}</a>
		</td>
		{/foreach}
		</tr>
		{/foreach}
	</table>
{else}
{t}No results{/t}
{/if}


Last but not least, I got the js ! Namely Search.ajax.js

AjaxPlugins.Search = {
  
    handleResponse: function(pluginOutput) {
        
        if (pluginOutput.htmlCode.POSTGIS_MAJ)
            $('search_results').innerHTML = pluginOutput.htmlCode.
POSTGIS_MAJ;
			}
			};


/*
 * Search plugin's Actions
 */
 
AjaxPlugins.Search.Actions = {};

AjaxPlugins.Search.Actions.DoIt = {

    buildPostRequest: function(argObject) {
        return AjaxHandler.buildPostRequest();
    }
};

function order(column) {
    
    if (column != $('search_sort_column').value){
	$('search_sort_column').value = column;
	$('search_sort_direction').value = 'asc';
	} else {
	if ($('search_sort_direction').value == 'asc') {
	$('search_sort_direction').value = 'desc';
	} else {
	$('search_sort_direction').value = 'asc';
	}
	}
    
    CartoWeb.trigger('Search.DoIt');
}

function recenter(id) {
	if ($('search_config').value == 'POSTGIS_MAJ') {
    $('id_recenter_ids').value = gid; //id to recenter
	$('recenter_scale').value = 1000; //scale for recentering
	$('recenter_doit').value = '1';
    
    CartoWeb.trigger('Location.Recenter');
}

I guess you now know all I did. Could someone please tell me what 
is wrong.

Apparently, someone else asked the same thing last month but no 
final answer was given on the mail list.

PS : Yes, I did clean all the file before trying

Véronique

_______________________________________________
Cartoweb-users mailing list
Cartoweb-users at lists.maptools.org
http://lists.maptools.org/mailman/listinfo/cartoweb-users
  


          -- 
          Camptocamp SA
          Damien Corpataux
          PSE A
          CH-1015 Lausanne

          +41 21 619 10 22 (Direct)
          +41 21 619 10 10 (Centrale)
          +41 21 619 10 00 (Fax)

          P Please consider the environment 
          Do you really need to print this email? 




------------------------------------------------------------------------
        _______________________________________________
        Cartoweb-users mailing list
        Cartoweb-users at lists.maptools.org
        http://lists.maptools.org/mailman/listinfo/cartoweb-users



--------------------------------------------------------------------------
      _______________________________________________
      Cartoweb-users mailing list
      Cartoweb-users at lists.maptools.org
      http://lists.maptools.org/mailman/listinfo/cartoweb-users


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/cartoweb-users/attachments/20070417/96f436ee/attachment-0001.html


More information about the Cartoweb-users mailing list