[Cartoweb-users] Plugin search not working
Oliver Christen
oliver.christen at camptocamp.com
Tue Apr 17 08:58:04 EDT 2007
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/cartoweb-users/attachments/20070417/0dac5145/attachment-0001.html
More information about the Cartoweb-users
mailing list