Implement hidden permission in profile editor
[platal.git] / templates / profile / jobs.job.tpl
index 8e170b5..8cd4199 100644 (file)
@@ -1,6 +1,6 @@
 {**************************************************************************}
 {*                                                                        *}
-{*  Copyright (C) 2003-2010 Polytechnique.org                             *}
+{*  Copyright (C) 2003-2014 Polytechnique.org                             *}
 {*  http://opensource.polytechnique.org/                                  *}
 {*                                                                        *}
 {*  This program is free software; you can redistribute it and/or modify  *}
 {*                                                                        *}
 {**************************************************************************}
 
-{assign var=jobid value="job_`$i`"}
+
+<script type="text/javascript" src="javascript/jquery.jstree.js"></script>
+{assign var=jobid value="jobs_"|cat:$i}
 {assign var=jobpref value="jobs[`$i`]"}
+{assign var=sector_text value="sector_text_"|cat:$i}
+{assign var=sector value="sector_"|cat:$i}
+{assign var=entreprise value="entreprise_"|cat:$i}
+{if $isMe || hasPerm('admin')}
+  {assign var=hiddenjob value=false}
+  {assign var=hiddenaddr value=false}
+  {assign var=hiddenemail value=false}
+{else}
+  {if hasPerm('directory_hidden') || ( ($job.pub neq 'hidden') && ($job.pub neq 'private')) || $new}
+    {assign var=hiddenjob value=false}
+  {elseif hasPerm('directory_private') && ($job.pub neq 'hidden')}
+    {assign var=hiddenjob value=false}
+  {else}
+    {assign var=hiddenjob value=true}
+  {/if}
+  {if hasPerm('directory_hidden') || ( ($job.w_address.pub neq 'hidden') && ($job.w_address.pub neq 'private')) || empty($job.w_address.text|smarty:nodefaults)}
+    {assign var=hiddenaddr value=false}
+  {elseif hasPerm('directory_private') && ($job.w_address.pub neq 'hidden')}
+    {assign var=hiddenaddr value=false}
+  {else}
+    {assign var=hiddenaddr value=true}
+  {/if}
+  {if hasPerm('directory_hidden') || ( ($job.w_email_pub neq 'hidden') && ($job.w_email_pub neq 'private')) || empty($job.w_email|smarty:nodefaults)}
+    {assign var=hiddenemail value=false}
+  {elseif hasPerm('directory_private') && ($job.w_email_pub neq 'hidden')}
+    {assign var=hiddenemail value=false}
+  {else}
+    {assign var=hiddenemail value=true}
+  {/if}
+{/if}
 <div id="{$jobid}">
   <input type="hidden" name="{$jobpref}[removed]" value="0" />
   <input type="hidden" name="{$jobpref}[new]" value="{if $new}1{else}0{/if}" />
+  <input type="hidden" name="{$jobpref}[id]" value="{$i}" />
+  <input type="hidden" name="{$jobpref}[jobid]" value="{$job.jobid}" />
   <table id="{$jobid}_grayed" class="bicol" style="display: none; margin-bottom: 1em">
     <tr>
       <th class="grayed">
         <div style="float: right">
-          <a href="javascript:restoreJob('{$jobid}', '{$jobpref}')">{icon name=arrow_refresh title="Restaure l'emploi"}</a>
+          <a href="javascript:restoreJob('{$jobid}','{$jobpref}')">{icon name=arrow_refresh title="Restaure l'emploi"}</a>
         </div>
-        Restaurer l'entreprise n°{$i+1}&nbsp;:&nbsp;<span id="{$jobid}_grayed_name"></span>
+        Restaurer l'entreprise n°{$i+1}&nbsp;:&nbsp;{if $hiddenjob}(masquée){else}<span id="{$jobid}_grayed_name"></span>{/if}
       </th>
     </tr>
   </table>
+
   <table id="{$jobid}_cont" class="bicol" summary="Entreprise n°{$i+1}" style="margin-bottom: 1em">
     <tr>
       <th colspan="2" style="text-align: right">
         <div class="flags" style="float: left; text-align: left">
-          {include file="include/flags.radio.tpl" name="`$jobpref`[pub]" val=$job.pub}
+          {include file="include/flags.radio.tpl" name="`$jobpref`[pub]" val=$job.pub disabled=$hiddenjob
+                   mainField='jobs' mainId=$i subField='w_address,w_email,w_phone' subId=-1}
         </div>
         Entreprise n°{$i+1}&nbsp;:
-        <input type="text" class="enterprise_name {if $job.name_error}error{/if}" size="35" maxlength="100"
+        {if $hiddenjob}
+        (masquée)
+        {if !t($job.tmp_name)}
+        <input type="hidden" name="{$jobpref}[name]" value="{$job.name}" />
+        {/if}
+        {else}
+        {if t($job.tmp_name)}{$job.tmp_name} <small>(en cours de validation)</small>{else}
+        <input type="text" class="enterprise_name{if t($job.name_error)} error{/if}" size="35" maxlength="100"
                name="{$jobpref}[name]" value="{$job.name}" />
-        <a href="javascript:removeJob('{$jobid}', '{$jobpref}')">
+        {/if}
+        {/if}
+        <a href="javascript:removeJob('{$jobid}','{$jobpref}')">
           {icon name=cross title="Supprimer cet emploi"}
         </a>
       </th>
     </tr>
-    <tr>
-      <td class="titre">Page Web</td>
+    {if !t($job.tmp_name)}{if !t($job.name)}
+    <tr class="{$entreprise}" {if $hiddenjob}style="display: none"{/if}>
+      <td class="center" colspan="2">
+        <small>Si l'entreprise ne figure pas dans la liste,
+        <a href="javascript:addEntreprise({$i})">clique ici</a> et complète les informations la concernant.</small>
+      </td>
+    </tr>
+    <tr class="{$entreprise}" style="display: none">
+      <td class="titre">Acronyme</td>
       <td>
-        <input type="text" size="35" maxlength="255" {if $job.web_error}class="error"{/if}
-               name="{$jobpref}[web]" value="{$job.web}" />
+        <input type="text" size="35" maxlength="255" name="{$jobpref}[hq_acronym]" />
       </td>
     </tr>
-    <tr>
-      <td class="titre">Secteur d'activité</td>
+    <tr class="{$entreprise}" style="display: none">
+      <td class="titre">Page web</td>
       <td>
-        <select name="{$jobpref}[secteur]" onchange="updateJobSecteur({$i}, '{$jobid}', '{$jobpref}', ''); return true;">
-          <option value="">&nbsp;</option>
-          {foreach from=$secteurs item=secteur}
-          <option value="{$secteur.id}" {if $secteur.id eq $job.secteur}selected="selected"{/if}>
-            {$secteur.label}
-          </option>
-          {/foreach}
-        </select>
+        <input type="text" size="35" maxlength="255" name="{$jobpref}[hq_url]" />
       </td>
     </tr>
-    <tr>
-      <td class="titre">Sous-secteur d'activité</td>
-      <td id="{$jobid}_ss_secteur">
-        <input type="hidden" name="{$jobpref}[ss_secteur]" value="{$job.ss_secteur|default:'-1'}" />
-      </td> 
+    <tr class="{$entreprise}" style="display: none">
+      <td class="titre">Email de contact</td>
+      <td>
+        <input type="text" maxlength="255" name="{$jobpref}[hq_email]" />
+      </td>
     </tr>
-    <tr>
-      <td class="titre">Poste occupé</td>
+    <tr class="{$entreprise}" style="display: none">
+      <td class="titre">Adresse du siège</td>
       <td>
-        <input type="text" size="35" maxlength="120" {if $job.poste_error}class="error"{/if}
-               name="{$jobpref}[poste]" value="{$job.poste}" />
+        <textarea name="{$jobpref}[hq_address]" cols="30" rows="4"></textarea>
       </td>
     </tr>
-    <tr>
-      <td class="titre">Fonction occupée</td>
+    <tr class="{$entreprise}" style="display: none">
+      <td class="titre">Téléphone</td>
+      <td>
+        <input type="text" maxlength="28" name="{$jobpref}[hq_fixed]" />
+      </td>
+    </tr>
+    <tr class="{$entreprise}" style="display: none">
+      <td class="titre">Fax</td>
       <td>
-        <select name="{$jobpref}[fonction]">
-          <option value="">&nbsp;</option>
-          {assign var=ingroup value=false}
-          {foreach from=$fonctions item=fonct}
-          {if $fonct.title}
-            {if $ingroup}</optgroup>{/if}
-            <optgroup label="{$fonct.fonction_fr}">
-            {assign var=ingroup value=true}
-          {/if}
-          <option value="{$fonct.id}" {if $fonct.id eq $job.fonction}selected="selected"{/if}>
-            {$fonct.fonction_fr}
-          </option>
+        <input type="text" maxlength="28" name="{$jobpref}[hq_fax]" />
+      </td>
+    </tr>
+    {/if}{/if}
+
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
+      <td colspan="2" class="center" style="font-style: italic">Place dans l'entreprise</td>
+    </tr>
+    <tr class="pair" id="{$sector_text}" {if $hiddenjob}style="display: none"{/if}>
+      <td class="titre">Mots-clefs</td>
+      <td class="jobs_terms">
+        <input type="text" class="term_search" size="35"/>
+        <a href="javascript:toggleJobTermsTree({$i})">{icon name="table" title="Tous les mots-clefs"}</a>
+        <script type="text/javascript">
+        /* <![CDATA[ */
+        $(function() {ldelim}
+          {foreach from=$job.terms item=term}
+          addJobTerm("{$i}", "{$term.jtid}", "{$term.full_name|replace:'"':'\\"'}");
           {/foreach}
-          {if $ingroup}</optgroup>{/if}
-        </select>
+          $('#jobs_{$i} .term_search').autocomplete(
+            {ldelim}
+              source: $.plURL('profile/jobterms'),
+              select: function(event, ui) {ldelim}
+                selectJobTerm(ui.item.id, ui.item.value, {$i});
+              {rdelim},
+              change: function(event, ui) {ldelim}
+                $(this).val('');
+              {rdelim}
+            {rdelim});
+        {rdelim});
+        /* ]]> */
+        </script>
       </td>
     </tr>
-    <tr class="titre">
-      <td class="center" colspan="2">
-        <small>Si des informations font défaut dans les listes ci-dessus,
-        <a href="mailto:support@{#globals.mail.domain#}">contacte-nous</a>.</small>
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
+      <td colspan="2" class="term_tree">
       </td>
     </tr>
-    <tr class="pair">
+    <tr class="pair" id="term_tree_comment" style="display: none">
+      <td colspan="2" class="center"><small>La catégorie « Emplois » donne une liste de métiers, « Secteurs d'activité » décrit des secteurs.</small></td>
+    </tr>
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
+      <td class="titre">Description</td>
+      <td>
+        <input type="text" size="35" maxlength="120" {if t($job.description_error)}class="error"{/if}
+           name="{$jobpref}[description]" value="{$job.description}" />
+      </td>
+    </tr>
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
+      <td class="titre">Page&nbsp;perso</td>
+      <td>
+          <input type="text" size="35" maxlength="255" {if t($job.w_url_error)}class="error"{/if}
+                 name="{$jobpref}[w_url]" value="{$job.w_url}" />
+      </td>
+    </tr>
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
+      <td class="titre">Année&nbsp;d'entrée</td>
+      <td>
+          <input type="text" size="4" maxlength="4" {if t($job.w_entry_year_error)}class="error"{/if}
+                 name="{$jobpref}[w_entry_year]" value="{$job.w_entry_year}" />
+          <small>(avec 4 chiffres, par exemple 1983)</small>
+      </td>
+    </tr>
+    <tr id="{$jobid}_w_address" class="pair" {if $hiddenjob || $hiddenaddr}style="display: none"{/if}>
+      <td class="titre">Adresse</td>
+      <td class="flags">
+        {include file="include/flags.radio.tpl" name="`$jobpref`[w_address][pub]" val=$job.w_address.pub
+                 subField='w_address' mainField='jobs' mainId=$i subId=''}
+      </td>
+    </tr>
+    {include file="geoloc/form.address.tpl" prefname="`$jobpref`[w_address]"
+                     prefid=$jobid address=$job.w_address class="pair" hiddenaddr=$hiddenaddr}
+    <tr class="pair" {if $hiddenjob || $hiddenaddr}style="display: none"{/if}>
       <td colspan="2">
-        <span class="titre">Email professionnel&nbsp;:</span>
-        <input type="text" size="30" maxlength="60" {if $job.email_error}class="error"{/if}
-               name="{$jobpref}[email]" value="{$job.email}" />
-        <span class="flags">
-          {include file="include/flags.radio.tpl" name="`$jobpref`[email_pub]" val=$job.email_pub}
-        </span>
+        <label>
+          <input type="checkbox" name="{$jobpref}[w_address][mail]" {if $job.w_address.mail}checked="checked"{/if} />
+            on peut {if $isMe}m'{/if}y envoyer du courrier par la poste
+        </label>
       </td>
     </tr>
+    {if $hiddenaddr}
     <tr class="pair">
+      <td class="titre" colspan="2">Adresse (masquée)</td>
+    </tr>
+    {/if}
+    {if $hiddenjob || $hiddenemail}
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
+      <td class="titre" colspan="2">
+        {if $hiddenemail}Email professionnel (masqué){/if}
+        <input type="hidden" name="{$jobpref}[w_email]" value="{$job.w_email}" />
+        <input type="hidden" name="{$jobpref}[w_email_pub]" value="{$job.w_email_pub}" />
+      </td>
+    </tr>
+    {else}
+    {include file="include/emails.combobox.tpl" name=$jobpref|cat:'[w_email]' val=$job.w_email
+             class="pair" divId="`$jobid`_w_email" i=$i error=$job.w_email_error prefix="w_" pub=$job.w_email_pub id=$i
+             subField='w_email' mainField='jobs' mainId=$i subId=''}
+    {/if}
+    <tr class="pair" {if $hiddenjob}style="display: none"{/if}>
       <td colspan="2">
-        <div style="float: left">
-          <div class="titre">Adresse</div>
-          <div class="flags">
-            {include file="include/flags.radio.tpl" name="`$jobpref`[adr][pub]" val=$job.adr.pub}
+        {foreach from=$job.w_phone key=t item=phone}
+          <div id="{"`$jobid`_w_phone_`$t`"}" style="clear: both">
+            {include file="profile/phone.tpl" prefname="`$jobpref`[w_phone]" prefid="`$jobid`_w_phone" telid=$t tel=$phone
+                     subField='w_phone' mainField='jobs' mainId=$i}
           </div>
-          <div style="margin-top: 20px; clear: both">
-            {include file="geoloc/form.address.tpl" name="`$jobpref`[adr]" id="`$jobid`_adr" adr=$job.adr}
-          </div>
-        </div>
-        <div style="float: right; width: 50%">
-          <div class="titre">Téléphone</div>
-          <div class="flags">
-            {include file="include/flags.radio.tpl" name="`$jobpref`[tel_pub]" val=$job.tel_pub}
+        {/foreach}
+        {if $job.w_phone|@count eq 0}
+          <div id="{"`$jobid`_w_phone_0"}" style="clear: both">
+            {include file="profile/phone.tpl" prefname="`$jobpref`[w_phone]" prefid="`$jobid`_w_phone" telid=0 tel=0
+                     subField='w_phone' mainField='jobs' mainId=$i}
           </div>
-          <table style="clear: both">
-            <tr>
-              <td>Bureau&nbsp;:</td>
-              <td>
-                <input type="text" size="18" maxlength="18" {if $job.tel_error}class="error"{/if}
-                       name="{$jobpref}[tel]" value="{$job.tel}" />
-              </td>
-            </tr>
-            <tr>
-              <td>Fax&nbsp;:</td>
-              <td>
-                <input type="text" size="18" maxlength="18" {if $job.fax_error}class="error"{/if}
-                       name="{$jobpref}[fax]" value="{$job.fax}" /></td>
-            </tr>
-            <tr>
-              <td>Mobile&nbsp;:</td>
-              <td>
-                <input type="text" size="18" maxlength="18" {if $job.mobile_error}class="error"{/if}
-                       name="{$jobpref}[mobile]" value="{$job.mobile}" />
-              </td>
-            </tr>
-          </table>
+        {/if}
+        <div id="{$jobid}_w_phone_add" class="center" style="clear: both; padding-top: 4px;">
+          <a href="javascript:addTel('{$jobid}_w_phone','{$jobpref}[w_phone]','w_phone','jobs','{$i}')">
+            {icon name=add title="Ajouter un numéro de téléphone"} Ajouter un numéro de téléphone
+          </a>
         </div>
       </td>
     </tr>
   </table>
 </div>
 
-{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
+{* vim:set et sw=2 sts=2 sws=2 fenc=utf-8: *}