function addNetworking()
{
var i = 0;
- var nw = 'networking_';
- while (document.getElementById(nw + i) != null) {
+ var nws = 'networking_';
+ while (document.getElementById(nws + i) != null) {
i++;
}
- var cb = document.forms.prof_annu['nw_type'];
- var id = cb.value;
- var text = cb.options[cb.selectedIndex].text;
+ var namefirst = '';
var html = '<tr id="networking_' + i + '">'
- + ' <td>'
- + ' <span class="flags">'
- + ' <input type="checkbox" name="networking[' + i + '][pub]"/>'
- + ' <img src="images/icons/flag_green.gif" alt="site public" title="site public">'
- + ' </span> '
- + ' <input type="hidden" name="networking[' + i + '][type]" value="' + id + '"/>'
- + ' <input type="hidden" name="networking[' + i + '][name]" value="' + text + '"/>'
- + ' <img src="profile/networking/' + id + '" alt="' + text + '" title="' + text + '" />'
- + ' <span class="title">'
- + text
- + ' </span>'
- + ' </td>'
- + ' <td>'
- + ' <input type="text" name="networking[' + i + '][address]" value="" size="30"/>'
- + ' <a href="javascript:removeNetworking(' + i + ')">'
- + ' <img src="images/icons/cross.gif" alt="cross" title="Supprimer cet élément"/>'
- + ' </a>'
+ + ' <td colspan="2">'
+ + ' <div style="float: left; width: 200px;">'
+ + ' <span class="flags">'
+ + ' <input type="checkbox" name="networking[' + i + '][pub]"/>'
+ + ' <img src="images/icons/flag_green.gif" alt="site public" title="site public">'
+ + ' </span> '
+ + ' <select id="networking_type_' + i + '" name="networking[' + i + '][type]" onchange="javascript:updateNetworking(' + i + ');">';
+ for (nw in nw_list) {
+ if (namefirst == '') {
+ namefirst = nw;
+ }
+ html += ' <option value="' + nw_list[nw] + '">' + nw + '</option>';
+ }
+ html += '</select>'
+ + ' <input type="hidden" id="networking_name_' + i + '" name="networking[' + i + '][name]" value="' + namefirst + '"/>'
+ + ' </div>'
+ + ' <div style="float: left">'
+ + ' <input type="text" name="networking[' + i + '][address]" value="" size="30"/>'
+ + ' <a href="javascript:removeNetworking(' + i + ')">'
+ + ' <img src="images/icons/cross.gif" alt="cross" title="Supprimer cet élément"/>'
+ + ' </a>'
+ + ' </div>'
+ ' </td>'
+ '</tr>';
- if (i == 0) {
- $('#networking').after(html);
- } else {
- $('#networking_'+(i-1)).after(html);
- }
+ $('#networking').before(html);
}
function removeNetworking(id)
$('#networking_' + id).remove();
}
-function updateNetworking()
+function updateNetworking(i)
{
- var val = document.forms.prof_annu['nw_type'].value;
- if (val == '') {
- document.getElementById('nw_add').style.display = 'none';
- } else {
- document.getElementById('nw_add').style.display = '';
+ var name = document.getElementById('networking_name_' + i);
+ var type = document.getElementById('networking_type_' + i);
+ if (type != null && name != null) {
+ name.value = type.options[type.selectedIndex].text;
}
+
}
// Addresses
$page->assign('xorg_title', 'Polytechnique.org - Administration - Format d\'affichage des numéros de téléphone ');
$page->assign('title', 'Gestion des formats d\'affichage des numéros de téléphone');
$table_editor = new PLTableEditor('admin/phones_format_display', 'phone_formats', 'phoneprf',true);
+ $table_editor->describe('phoneprf', 'Préfixe International', true);
$table_editor->describe('format', 'format d\'Affichage (ex: (+p) ### ## ## ##)', true);
if ($action == 'update') {
if ((Post::has('phoneprf')) && (Post::v('phoneprf') == $id)) {
}
$success = true;
foreach($value as $i=>&$network) {
- if(!isset($network['pub'])) {
- $network['pub'] = 'private';
- }
- $network['error'] = false;
- $network['pub'] = $this->pub->value($page, 'pub', $network['pub'], $s);
- $s = true;
- if ($filters[$network['type']] == 'web') {
- $network['address'] = $this->web->value($page, 'address', $network['address'], $s);
- } elseif ($filters[$network['type']] == 'email') {
- $network['address'] = $this->email->value($page, 'address', $network['address'], $s);
- } elseif ($filters[$network['type']] == 'number') {
- $network['address'] = $this->number->value($page, 'address', $network['address'], $s);
- }
- if (!$s) {
- $success = false;
- $network['error'] = true;
+ if (!trim($network['address'])) {
+ unset($value[$i]);
+ } else {
+ if (!isset($network['pub'])) {
+ $network['pub'] = 'private';
+ }
+ $network['error'] = false;
+ $network['pub'] = $this->pub->value($page, 'pub', $network['pub'], $s);
+ $s = true;
+ if ($filters[$network['type']] == 'web') {
+ $network['address'] = $this->web->value($page, 'address', $network['address'], $s);
+ } elseif ($filters[$network['type']] == 'email') {
+ $network['address'] = $this->email->value($page, 'address', $network['address'], $s);
+ } elseif ($filters[$network['type']] == 'number') {
+ $network['address'] = $this->number->value($page, 'address', $network['address'], $s);
+ }
+ if (!$s) {
+ $success = false;
+ $network['error'] = true;
+ }
}
}
return $value;
$page->assign('advanced',1);
$page->addJsLink('jquery.autocomplete.js');
- $res = XDB::iterator("SELECT nw.network_type AS type, nw.name
- FROM profile_networking_enum AS nw
- ORDER BY name ;");
- $page->assign('network_list', $res->fetchAllAssoc());
-
if (!Env::has('rechercher') && $action != 'geoloc') {
$this->form_prepare();
} else {
'secteur' => array('field' => 'id', 'table' => 'emploi_secteur', 'text' => 'label', 'exact' => false),
'nationalite' => array('field' => 'a2', 'table' => 'geoloc_pays', 'text' => 'nat', 'exact' => 'false'),
'binet' => array('field' => 'id', 'table' => 'binets_def', 'text' => 'text', 'exact' => false),
+ 'networking_type' => array('field' => 'network_type', 'table' => 'profile_networking_enum',
+ 'text' => 'name', 'exact' => false),
'groupex' => array('field' => 'id', 'table' => 'groupex.asso',
'text' => "(a.cat = 'GroupesX' OR a.cat = 'Institutions') AND pub = 'public' AND nom",
'exact' => false),
$beginwith = false;
$realid = '`binets_def`.`id`';
break;
+ case 'networking_typeTxt':
+ $db = '`profile_networking_enum` INNER JOIN
+ `profile_networking` ON(`profile_networking`.`network_type` = `profile_networking_enum`.`network_type`)';
+ $field = '`profile_networking_enum`.`name`';
+ $unique = 'uid';
+ $realid = '`profile_networking_enum`.`network_type`';
+ break;
case 'city':
$db = '`geoloc_city` INNER JOIN
`adresses` ON(`geoloc_city`.`id` = `adresses`.`cityid`)';
case 'binet':
$db = '`binets_def`';
break;
+ case 'networking_type':
+ $db = '`profile_networking_enum`';
+ $field = '`name`';
+ $id = '`network_type`';
+ break;
case 'country':
$db = '`geoloc_pays`';
$field = '`pays`';
}
}
+class IndexSField extends RefSField
+{
+ function IndexSField($_fieldFormName, $_fieldDbName='', $_refTable, $_refAlias, $_refCondition)
+ {
+ $this->RefSField($_fieldFormName, $_fieldDbName, $_refTable, $_refAlias, $_refCondition, true);
+ }
+
+ function get_request()
+ {
+ $this->value = trim(Env::v($this->fieldFormName));
+ }
+}
+
class MapSField extends RefSField
{
var $mapId;
$nwAddressField = new RefSField('networking_address', array('nw.address'), 'profile_networking', 'nw', 'nw.uid=u.user_id', false);
if (Env::v('networking_address') == '') {
- $nwTypeField = new RefSField('networking_type', array('nwe.name'), array('profile_networking', 'profile_networking_enum'), array('nw', 'nwe'), array('nw.uid = u.user_id', 'nwe.network_type = nw.network_type'), true);
+ $nwTypeField = new IndexSField('networking_type', array('nwe.network_type'), array('profile_networking', 'profile_networking_enum'), array('nw', 'nwe'), array('nw.uid = u.user_id', 'nwe.network_type = nw.network_type'));
} else {
- $nwTypeField = new RefSField('networking_type', array('nwe.name'), 'profile_networking_enum', 'nwe', 'nwe.network_type = nw.network_type', true);
+ $nwTypeField = new IndexSField('networking_type', array('nwe.network_type'), 'profile_networking_enum', 'nwe', 'nwe.network_type = nw.network_type');
}
$nwPhoneField = new PhoneSField('phone_number', array('t.search_tel'), 'telephone', 't', 't.uid=u.user_id');
return array(
|
<a href="admin/networking">Networking</a>
|
- <a href="admin/phones_format_display">Format d'affichage des numéros de téléphone</a>
+ <a href="admin/phones_format_display">Téléphone</a>
</td>
</tr>
<tr class="pair">
{**************************************************************************}
<tr id="networking_{$i}">
- <td>
- <span class="flags">
- <input type="checkbox"
- {if $nw.pub neq 'private'} checked="checked"{/if}
- name="networking[{$i}][pub]"/>
- {icon name="flag_green" title="site public"}
- </span>
- <input type="hidden" name="networking[{$i}][type]" value="{$nw.type}"/>
- <input type="hidden" name="networking[{$i}][name]" value="{$nw.name}"/>
- <img src="profile/networking/{$nw.type}" alt="{nw.name}" title="{nw.name}" />
- <span class="title">{$nw.name}</span>
- </td>
- <td>
- <input type="text" name="networking[{$i}][address]" value="{$nw.address}"
- {if $nw.error} class="error" {/if}
- size="30"/>
- <a href="javascript:removeNetworking({$i})">
- {icon name=cross title="Supprimer cet élément"}
- </a>
+ <td colspan="2">
+ <div style="float: left; width: 200px;">
+ <span class="flags">
+ <input type="checkbox"
+ {if $nw.pub neq 'private'} checked="checked"{/if}
+ name="networking[{$i}][pub]"/>
+ {icon name="flag_green" title="site public"}
+ </span>
+ <input type="hidden" name="networking[{$i}][type]" value="{$nw.type}"/>
+ <input type="hidden" name="networking[{$i}][name]" value="{$nw.name}"/>
+ <img src="profile/networking/{$nw.type}" alt="{$nw.name}" title="{$nw.name}" />
+ <span style="">{$nw.name}</span>
+ </div>
+ <div style="float: left">
+ <input type="text" name="networking[{$i}][address]" value="{$nw.address}"
+ {if $nw.error} class="error" {/if}
+ size="30"/>
+ <a href="javascript:removeNetworking({$i})">
+ {icon name=cross title="Supprimer cet élément"}
+ </a>
+ </div>
</td>
</tr>
<span class="titre">Messageries, networking et sites web</span>
</td>
</tr>
- <tr id="networking">
- <td>
- <span class="titre" style="margin-left:1em;">Type à ajouter</span>
- </td>
- <td>
- <select name="nw_type" onchange="updateNetworking()">
- <option value=""></option>
- {foreach from=$network_list item=network}
- <option value="{$network.type}">{$network.name}</option>
- {/foreach}
- </select>
- <span id="nw_add" style="display: none">
- <a href="javascript:addNetworking();">{icon name=add title="Ajouter cette adresse"}</a>
- </span>
- </td>
- </tr>
{foreach from=$networking item=network key=id}
{include file="profile/general.networking.tpl" nw=$network i=$id}
{/foreach}
+ <tr id="networking">
+ <script type="text/javascript">//<![CDATA[
+ var nw_list = new Array();
+ {foreach from=$network_list item=network}
+ nw_list['{$network.name}'] = {$network.type};
+ {/foreach}
+ //]]></script>
+ <td colspan="2">
+ <div id="nw_add" class="center">
+ <a href="javascript:addNetworking();">
+ {icon name=add title="Ajouter une adresse"} Ajouter une adresse
+ </a>
+ </div>
+ </td>
+ </tr>
+<!-- <tr id="networking">
+ <td colspan="2">
+ <div style="float: left; width: 200px;">
+ <span class="titre" style="margin-left:1em;">Type à ajouter</span>
+ </div>
+ <div style="float: left;">
+ <div id="nw_type_ac" style="background-color: white; border: solid 1px black; position: absolute; width: 208px; display: none">TEST</div>
+ <input type="text" size="30" id="nw_type" name="nw_type" onkeyup="updateNetworking()">
+ <span id="nw_add" style="display: none">
+ <a href="javascript:addNetworking();">{icon name=add title="Ajouter cette adresse"}</a>
+ </span>
+ </div>
+ </td>
+ </tr>-->
<tr class="pair">
<td>
<div>
<span><br/>{$x.gpxs_join|smarty:nodefaults}</span></div>{/if}
{/if}
{if $x.networking}
- <h2>Messageries, networking et sites web :</h2>
+ <h2>Sur le web...</h2>
{foreach from=$x.networking item=network}
<img style="width: auto; padding: 0" src="profile/networking/{$network.type}" alt="{$network.name}" title="{$network.name}"/>
{if $network.filter == 'web'}
<td><input type="text" name="phone_number" size="32" value="{$smarty.request.phone_number}"/></td>
</tr>
<tr>
- <td colspan="2">Messageries, networking et sites webs</td>
- </tr>
- <tr>
- <td>
- <span style="margin-left:2em">Adresse</span>
- </td>
- <td>
- <input type="text" name="networking_address" size="32" value="{$smarty.request.networking_address}" />
- </td>
- </tr>
- <tr>
- <td>
- <span style="margin-left:2em">Type</span>
+ <td style="vertical-align: middle">
+ <span>Networking et sites webs</span>
</td>
<td>
- <select name="networking_type">
- <option value="" {if $smarty.request.networking_type eq ""} selected="selected"{/if}>
- Tout
- </option>
- {foreach from=$network_list item=network}
- <option value="{$network.name}" {if $smarty.request.networking_type eq $network.name} selected="selected" {/if}>
- {$network.name}
- </option>
- {/foreach}
- </select>
+ <table>
+ <tr>
+ <td style="padding-left: 0px;">
+ <input type="text" name="networking_address" size="32" value="{$smarty.request.networking_address}" />
+ </td>
+ <td>
+ <input type="text" name="networking_typeTxt" class="autocomplete" size="10" value="{$smarty.request.networking_typeTxt}" />
+ <input name="networking_type" class="autocompleteTarget" type="hidden" value="{$smarty.request.networking_type}"/>
+ <a href="networking_type" class="autocompleteToSelect">{icon name="table" title="Tous les types d'adresse"}</a>
+ </td>
+ </tr>
+ </table>
</td>
</tr>
{if $smarty.session.auth ge AUTH_COOKIE}