Commit 446d8cf5 authored by Romain Loth's avatar Romain Loth

claim_profile page layout and visiting card layout

parent c3d79cbf
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<link rel="stylesheet" href="static/explorerlibs/css2/sidebar.css" media="screen"> <link rel="stylesheet" href="static/explorerlibs/css2/sidebar.css" media="screen">
<link rel="stylesheet" href="static/explorerlibs/bootswatch/css/bootswatch.css"> <link rel="stylesheet" href="static/explorerlibs/bootswatch/css/bootswatch.css">
<link rel="stylesheet" href="static/explorerlibs/css2/font.css" type="text/css"> <link rel="stylesheet" href="static/explorerlibs/css2/font.css" type="text/css">
<link rel="stylesheet" href="static/css/comex.css" type="text/css">
<style> <style>
.sigma_labels_canvas { .sigma_labels_canvas {
......
...@@ -604,16 +604,47 @@ class MyExtractor: ...@@ -604,16 +604,47 @@ class MyExtractor:
else: else:
color = '78,193,127' color = '78,193,127'
# content is an instance of #information.our-vcard
# --------------------------------------------------
# <img src="....">
# <ul>
# <li class=bigger>
# <b>{{ hon_title }}
# {{ first_name }}
# {{ mid_initials }}
# {{ last_name }}</b>
# <br/>
# <br/>
# </li>
# <li>
# <b>Country: </b>{{ country }}<br>
# <b>Position: </b>{{ position }}<br>
# <b>Keywords: </b>{{ keywords }}<br>
# [ <a href="{{ info.home_url }}" target="blank">
# View homepage
# </a>]
# <br>
# </li>
# </ul>
content="" content=""
pic_src=self.scholars[idNode]['pic_src']
# pic in vcard
pic_src=self.scholars[idNode]['pic_src']
if pic_src and pic_src != "": if pic_src and pic_src != "":
content += '<img src="'+pic_src+'" width=' + str(self.imsize) + 'px style=float:left;margin:5px>'; content += '<img src="'+pic_src+'" width=' + str(self.imsize) + 'px>';
else: else:
if len(self.scholars)<2000: if len(self.scholars)<2000:
im_id = int(floor(randint(0, 11))) im_id = int(floor(randint(0, 11)))
content += '<img src="static/img/'+str(im_id)+'.png" width=' + str(self.imsize) + 'px style=float:left;margin:5px>' content += '<img src="static/img/'+str(im_id)+'.png" width=' + str(self.imsize) + 'px>'
# label in vcard
content += '<p class=bigger><b>'+nodeLabel+'</b></p>'
# other infos in vcard
content += '<p>'
content += '<b>Country: </b>' + self.scholars[idNode]['country'] + '</br>' content += '<b>Country: </b>' + self.scholars[idNode]['country'] + '</br>'
if self.scholars[idNode]['position'] and self.scholars[idNode]['position'] != "": if self.scholars[idNode]['position'] and self.scholars[idNode]['position'] != "":
...@@ -639,6 +670,8 @@ class MyExtractor: ...@@ -639,6 +670,8 @@ class MyExtractor:
content += '[ <a href=' +self.scholars[idNode]['home_url'].replace("&"," and ")+ ' target=blank > View homepage </a >]<br/>' content += '[ <a href=' +self.scholars[idNode]['home_url'].replace("&"," and ")+ ' target=blank > View homepage </a >]<br/>'
content += '</p>'
node = {} node = {}
node["type"] = "Document" node["type"] = "Document"
node["label"] = nodeLabel node["label"] = nodeLabel
......
...@@ -473,7 +473,6 @@ def claim_profile(): ...@@ -473,7 +473,6 @@ def claim_profile():
# identify who came back from the return token # identify who came back from the return token
if 'token' in request.args: if 'token' in request.args:
return_token = sanitize(request.args['token']) return_token = sanitize(request.args['token'])
print("clean token", return_token) print("clean token", return_token)
...@@ -490,12 +489,15 @@ def claim_profile(): ...@@ -490,12 +489,15 @@ def claim_profile():
# claim failure cases # claim failure cases
if return_token is None or luid is None or return_user is None: if return_token is None or luid is None or return_user is None:
mlog('INFO', 'failed claim profile attempt with return_token=%s, luid=%s' % str(return_token),str(luid)) mlog('INFO', 'failed claim profile attempt with return_token=%s, luid=%s' % (str(return_token),str(luid)))
return render_template( return render_template(
"message.html", "message.html",
message = """ message = """
This is not the correct link. Don't attempt to claim a profile that is not yours. This is not the correct link. If you're trying to register to an old profile, please simply click on the link in the email you received.
""" <br/>
<br/>
Otherwise you can simply register via <span class='code'><a href="%s">%s</a></span>
""" % (url_for('register'),url_for('register'))
) )
# claim success # claim success
......
...@@ -65,6 +65,10 @@ div.my-box { ...@@ -65,6 +65,10 @@ div.my-box {
-webkit-transition: opacity .2s ease-out; -webkit-transition: opacity .2s ease-out;
} }
.panel-body {
padding: 5px 15px;
}
/* for intro text */ /* for intro text */
.mini-hero { .mini-hero {
margin-top: 5px; margin-top: 5px;
...@@ -83,6 +87,11 @@ div.my-box { ...@@ -83,6 +87,11 @@ div.my-box {
/*text-align: center;*/ /*text-align: center;*/
} }
#information-example {
}
/* self-made modals */ /* self-made modals */
.modal.self-made { .modal.self-made {
top:25%; top:25%;
...@@ -190,22 +199,41 @@ div.my-box { ...@@ -190,22 +199,41 @@ div.my-box {
margin-top: -.5em; margin-top: -.5em;
} }
/* big categories */
h2.cat {
font-size: 24px;
font-family: "Droid Sans", Calibri, Ubuntu, sans-serif;
padding-top: 1em;
font-weight: bold;
color: #910;
}
h2.catfirst {
font-size: 24px;
margin-top: .2em;
font-weight: bold;
color: #910;
}
/* page sections: style snippets from old bootstrap h2 */ /* page sections: style snippets from old bootstrap h2 */
h2.oldstyle { h2.oldstyle {
font-size: 26px; font-size: 24px;
font-family: "Droid Sans", Calibri, Ubuntu, sans-serif; font-family: Ubuntu, sans-serif;
font-weight: bold; font-weight: bold;
} }
@media(max-width:768px){ @media(max-width:768px){
/* sm */ /* sm */
h2.oldstyle { h2.cat, h2.oldstyle {
font-size: 22px !important; font-size: 22px !important;
} }
} }
@media(max-width:544px){ @media(max-width:544px){
/* xs */ /* xs */
h2.oldstyle { h2.cat, h2.oldstyle {
font-size: 16px !important; font-size: 16px !important;
} }
} }
...@@ -215,7 +243,9 @@ h2.oldstyle { ...@@ -215,7 +243,9 @@ h2.oldstyle {
div.ccsection-wrap { div.ccsection-wrap {
margin: 0 ; margin: 0 ;
padding: 0 ; padding: 0 ;
border: none;
background-color: transparent; background-color: transparent;
max-width: 62em; /* must be > FORMWIDTH */
} }
a.ccsection-toggle { a.ccsection-toggle {
margin: 0 ; margin: 0 ;
...@@ -224,6 +254,20 @@ a.ccsection-toggle { ...@@ -224,6 +254,20 @@ a.ccsection-toggle {
a.ccsection-toggle:hover, a.ccsection-toggle:focus { a.ccsection-toggle:hover, a.ccsection-toggle:focus {
text-decoration: none; text-decoration: none;
} }
h2.ccsection {
padding-top: 1em;
font-size: 1.5em;
font-family: "Droid Sans", Calibri, Ubuntu, sans-serif;
font-weight: bold;
}
/* uform with bg has already enough padding */
/*uform > h2.ccsection {
padding: 0;
margin: 0
}*/
.ccsection-toggle h2.ccsection, .ccsection-toggle:focus h2.ccsection { .ccsection-toggle h2.ccsection, .ccsection-toggle:focus h2.ccsection {
color: #333 ; /* passive: like normal body color */ color: #333 ; /* passive: like normal body color */
} }
...@@ -244,7 +288,7 @@ div.ccsection-heading { ...@@ -244,7 +288,7 @@ div.ccsection-heading {
div.ccsection-uform-body { div.ccsection-uform-body {
background-color: #ddd; background-color: #ddd;
border-radius: 0 ; border-radius: 0 ;
padding: 15px 30px 53px 30px; padding: 5px 15px 20px 15px;
} }
div.ccsection-footer { div.ccsection-footer {
...@@ -255,9 +299,30 @@ div.ccsection-footer { ...@@ -255,9 +299,30 @@ div.ccsection-footer {
/**/ /* "carte de visite" */
.our-vcard { .our-vcard {
line-height: 110%; line-height: 110%;
background-color:#fff;
border-radius: .3em;
padding: 2em 1em .3em 1em;
margin: 2em ;
border: 2px solid #555;
max-width: 35em;
}
.our-vcard img {
float:left;
width: 90px;
position: relative;
margin: -7px 10px 5px 5px;
}
.our-vcard ul {
list-style: none;
}
/**/
.bigger {
font-size: 150%;
} }
......
...@@ -2,10 +2,25 @@ ...@@ -2,10 +2,25 @@
/* form content for reg, profile, login, etc.... */ /* form content for reg, profile, login, etc.... */
div.uform { div.uform {
padding: 15px 30px 53px 30px; /*padding: 15px 30px 53px 30px;*/
margin: 38px 38px 8px 38px; padding: 0px 5px 3px 5px;
margin: 7px 5px 3px 5px;
background-color: #ddd; background-color: #ddd;
max-width: 950px; max-width: 57em; /* FORMWIDTH */
}
/* form content for reg, profile, login, etc.... */
div.uform-white {
padding: 0px 5px 3px 5px;
margin: 7px 5px 3px 5px;
background-color: #fff;
max-width: 57em; /* FORMWIDTH */
border-radius: 5px;
}
div.uform-white .ccsection-heading,
div.uform-white .ccsection-uform-body {
background-color: #fff;
} }
/*div.uform::before { /*div.uform::before {
...@@ -16,17 +31,40 @@ div.uform { ...@@ -16,17 +31,40 @@ div.uform {
color: #000; color: #000;
}*/ }*/
/* same but to put a panel-body inside */ /* same but no margin and no color: good to put a panel-body inside */
div.uform-nobg { div.uform-nobg {
margin: 38px 38px 8px 38px; max-width: 57em; /* FORMWIDTH */
max-width: 900px; }
.uform.readonly input,
.uform.readonly label,
.uform-white.readonly input,
.uform-white.readonly label {
color: #888;
}
.uform.readonly .tagbox-container,
.uform-white.readonly .tagbox-container {
border: 1px solid #ccc;
border-radius: 5px;
}
.uform.readonly .tagbox-container input,
.uform-white.readonly .tagbox-container input {
display: none;
}
.uform.readonly .tagbox-container label,
.uform-white.readonly .tagbox-container label {
border-top: none;
border-left: none;
border-bottom: none;
border-right: 1px solid #ccc;;
} }
@media(max-width:991px){ @media(max-width:991px){
/* sm and md */ /* sm and md */
div.uform, div.uform-nobg { div.uform, div.uform-nobg {
padding: 0; padding: 0;
margin: 12px 12px 2px 12px; margin: 5px 0px 0px 5px;
} }
} }
...@@ -54,8 +92,13 @@ p#doors_ret_msg { ...@@ -54,8 +92,13 @@ p#doors_ret_msg {
border-radius: 2em; border-radius: 2em;
padding: 1em 3em; padding: 1em 3em;
text-align: center; text-align: center;
max-width: 57em;
} }
/* ex: profile overview in readonly */
.readonly.panel-body {
background-color: #ddd;
}
/* a fixed div for validation messsages */ /* a fixed div for validation messsages */
.menu-right-fixed { .menu-right-fixed {
...@@ -78,7 +121,7 @@ p#doors_ret_msg { ...@@ -78,7 +121,7 @@ p#doors_ret_msg {
.question { .question {
padding: 0 1em; padding: 0 1em;
margin-bottom: 2em; margin-bottom: 2em;
max-width: 52em; /* FORMWIDTH */ max-width: 57em; /* FORMWIDTH */
} }
@media(max-width:991px){ @media(max-width:991px){
...@@ -175,24 +218,17 @@ input.readonly { ...@@ -175,24 +218,17 @@ input.readonly {
border-bottom: 3px solid #ccc; border-bottom: 3px solid #ccc;
} }
/* collapsible sections */
h2.ccsection {
padding-top: 1em;
font-size: 1.5em;
font-family: "Droid Sans", Calibri, Ubuntu, sans-serif;
font-weight: bold;
}
/* big categories: like form sections etc. */ /* form categories: like form sections etc. */
h3.formcat { h3.formcat {
font-size: 20px; font-size: 16px;
padding-top: 1em; padding-top: 1em;
font-weight: bold; font-weight: bold;
color: #910; color: #910;
} }
h3.formcatfirst { h3.formcatfirst {
font-size: 20px; font-size: 16px;
margin-top: .2em; margin-top: .2em;
font-weight: bold; font-weight: bold;
color: #910; color: #910;
......
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
.loader{ .loader{
text-align:center; text-align:center;
transform: translate(0, 50%) !important; transform: translate(0, 50%) !important;
-ms-transform: translate(0, 50%) !important; /*IE 9*/ -ms-transform: translate(0, 50%) !important; /*IE 9*/
-webkit-transform: translate(0, 50%) !important; /*Safari and Chrome */ -webkit-transform: translate(0, 50%) !important; /*Safari and Chrome */
} }
.navbar { .navbar {
margin-bottom:1px; margin-bottom:1px;
} }
#defaultop{ #defaultop{
min-height: 5%; min-height: 5%;
max-height: 10%; max-height: 10%;
} }
...@@ -60,10 +60,10 @@ ...@@ -60,10 +60,10 @@
/*.selection-item{ /*.selection-item{
display:inline-block; display:inline-block;
border:solid 1px; border:solid 1px;
-moz-border-radius: 6px; -moz-border-radius: 6px;
-webkit-border-radius: 6px; -webkit-border-radius: 6px;
-khtml-border-radius: 6px;'+ -khtml-border-radius: 6px;'+
border-color:#BDBDBD; border-color:#BDBDBD;
padding:0px 2px 0px 2px; padding:0px 2px 0px 2px;
margin:1px 0px 1px 0px; margin:1px 0px 1px 0px;
cursor: pointer; cursor: pointer;
...@@ -90,10 +90,10 @@ ...@@ -90,10 +90,10 @@
display:inline-block; display:inline-block;
border:solid 1px; border:solid 1px;
/*box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.3); */ /*box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.3); */
-moz-border-radius: 6px; -moz-border-radius: 6px;
-webkit-border-radius: 6px; -webkit-border-radius: 6px;
-khtml-border-radius: 6px;'+ -khtml-border-radius: 6px;'+
border-color:#BDBDBD; border-color:#BDBDBD;
padding:0px 2px 0px 2px; padding:0px 2px 0px 2px;
margin:1px 0px 1px 0px; margin:1px 0px 1px 0px;
cursor: pointer; cursor: pointer;
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
} }
.gradient { .gradient {
background-color: #f0f0f8; background-color: #f0f0f8;
background-image: -webkit-radial-gradient(#ffffff, #d8d8e0); background-image: -moz-radial-gradient(#ffffff, #d8d8e0); background-image: -webkit-radial-gradient(#ffffff, #d8d8e0); background-image: -moz-radial-gradient(#ffffff, #d8d8e0);
/*background-color: #434343;*/ /*background-color: #434343;*/
/*background-image: linear-gradient(#434343, #282828);*/ /*background-image: linear-gradient(#434343, #282828);*/
...@@ -261,19 +261,34 @@ ...@@ -261,19 +261,34 @@
} }
#tips ul{ #tips ul{
/*list-style:none;*/ /*list-style:none;*/
padding-left:10%; padding-left:10%;
} }
/* "carte de visite" */
#information { #information {
font-size:80%; line-height: 110%;
} background-color:#fff;
border-radius: .3em;
padding: 2em 1em .3em 1em;
margin: 2em ;
border: 2px solid #555;
max-width: 35em;
}
#information img {
clear:both
width: 90px;
position: relative;
top: -7px;
right: 10px;
}
#information ul { #information ul {
list-style:none; list-style: none;
padding-left:5%; }
}
.btn-sm:hover { .btn-sm:hover {
font-weight: bold; font-weight: bold;
...@@ -287,4 +302,4 @@ ...@@ -287,4 +302,4 @@
.tab.active { background: #fff; padding-top: 6px; position: relative; top: 1px; border-color: #666; } .tab.active { background: #fff; padding-top: 6px; position: relative; top: 1px; border-color: #666; }
.tab a.active { font-weight: bold; } .tab a.active { font-weight: bold; }
.tab-container .panel-container { background: #fff; border: solid #666 1px; padding: 10px; -moz-border-radius: 0 4px 4px 4px; -webkit-border-radius: 0 4px 4px 4px; } .tab-container .panel-container { background: #fff; border: solid #666 1px; padding: 10px; -moz-border-radius: 0 4px 4px 4px; -webkit-border-radius: 0 4px 4px 4px; }
.panel-container { margin-bottom: 10px; } .panel-container { margin-bottom: 10px; }
\ No newline at end of file
...@@ -25,6 +25,7 @@ function selectSavedMenus(uinfo) { ...@@ -25,6 +25,7 @@ function selectSavedMenus(uinfo) {
if (colType == 'm') { if (colType == 'm') {
var colName = cmxClt.COLS[i][0] var colName = cmxClt.COLS[i][0]
var chosenV = uinfo[colName] var chosenV = uinfo[colName]
console.log("..selectSavedMenus", colName, chosenV)
var selectElt = document.getElementById(colName) var selectElt = document.getElementById(colName)
if (selectElt) { if (selectElt) {
var myOption = selectElt.querySelector(`option[value="${chosenV}"]`) var myOption = selectElt.querySelector(`option[value="${chosenV}"]`)
...@@ -42,6 +43,19 @@ function selectSavedMenus(uinfo) { ...@@ -42,6 +43,19 @@ function selectSavedMenus(uinfo) {
} }
} }
// the contents are conditioned on what return_user had in his info
var presentMtis = []
if (uinfo.keywords.length) {
presentMtis.push(
{'id':'keywords', 'prevals': uinfo.keywords}
)
}
if (uinfo.hashtags.length) {
presentMtis.push(
{'id':'hashtags', 'prevals': uinfo.hashtags,'color': "#23A"}
)
}
// initialize form controllers // initialize form controllers
var theUForm = cmxClt.uform.Form( var theUForm = cmxClt.uform.Form(
...@@ -50,17 +64,9 @@ var theUForm = cmxClt.uform.Form( ...@@ -50,17 +64,9 @@ var theUForm = cmxClt.uform.Form(
// onkeyup function // onkeyup function
null, null,
// other params // other params
{ 'multiTextinputs': [{'id':'keywords', { 'multiTextinputs': presentMtis }
'prevals': uinfo.keywords},
{'id':'hashtags',
'prevals': uinfo.hashtags,
'color': "#23A"}]
}
) )
var deleteUser = document.getElementById('delete_user')
deleteUser.checked = false
selectSavedMenus(uinfo) selectSavedMenus(uinfo)
// memory // memory
......
...@@ -399,13 +399,13 @@ function htmlfied_nodesatts(elems){ ...@@ -399,13 +399,13 @@ function htmlfied_nodesatts(elems){
socnodes.push(information); socnodes.push(information);
} else { } else {
if(node.type==catSoc){ if(node.type==catSoc){
information += '<li><b>' + node.label + '</b></li>';
if(node.htmlCont==""){ if(node.htmlCont==""){
information += '<li><b>' + node.label + '</b></li>';
if (!isUndef(node.level)) { if (!isUndef(node.level)) {
information += '<li>' + node.level + '</li>'; information += '<li>' + node.level + '</li>';
} }
} else { } else {
information += '<li>' + $("<div/>").html(node.htmlCont).text() + '</li>'; information += $("<div/>").html(node.htmlCont).text() ;
} }
socnodes.push(information) socnodes.push(information)
} }
...@@ -451,9 +451,7 @@ function updateLeftPanel_fix() { ...@@ -451,9 +451,7 @@ function updateLeftPanel_fix() {
// getTopPapers("semantic"); // getTopPapers("semantic");
informationDIV += '<br><h4>Information:</h4><ul>'; informationDIV = htmlfied_nodesatts( getNodeIDs(selections) ).join("<br>\n")
informationDIV += htmlfied_nodesatts( getNodeIDs(selections) ).join("<br>\n")
informationDIV += '</ul><br>';
//using the readmore.js //using the readmore.js
// ive put a limit for nodes-name div // ive put a limit for nodes-name div
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<!-- <h2 class="oldstyle">Your Profile Info</h2> --> <!-- <h2 class="oldstyle">Your Profile Info</h2> -->
<p class="mini-hero"> <p class="mini-hero">
<span class="bigger"> <span class="bigger">
Welcome to your old profile page, Welcome to your archived profile page,
<strong> <strong>
{% if return_user.info.hon_title is not none %} {% if return_user.info.hon_title is not none %}
{{ return_user.info.hon_title }} {{ return_user.info.hon_title }}
...@@ -34,82 +34,31 @@ ...@@ -34,82 +34,31 @@
</p> </p>
</div> </div>
<!-- createlogin -->
<!-- DOORS EMAIL -->
<h3 class="formcat"> Login infos </h3>
<p class="mini-hero">
This email is your main ID. You may only change it via the <a href="http://{{ doors_connect }}/">Doors portal</a>.
</p>
<div class="question input-group">
<label for="email" class="smlabel input-group-addon">
Email
</label>
<input readonly id="email" name="email" maxlength="255" readonly
type="text" class="form-control readonly"
value="{{ return_user.info.email }}">
</div>
<p class="mini-hero">
By registering your email with the Institute's portal, you will claim this data and get the possibility to change or remove it.
</p>
<!-- overview --> <!-- overview -->
<div class="panel ccsection-wrap"> <h2 class="cat">
<a class="ccsection-toggle" You legacy data
data-parent="#profile_box" </h2>
data-toggle="collapse" <p class="mini-hero">
href="#overview" In these 2 panels, you will find your data from the <strong>previous version of Community Explorer</strong>.
aria-controls="overview" </p>
id="ccsection_toggle_overview">
<div class="panel-heading ccsection-heading" role="tab">
<h2 class="ccsection">
<span class="glyphicon glyphicon-collapse-down glyphicon-float-right"></span>
Your saved data
</h2>
</div>
</a> <div class="panel ccsection-wrap">
<div id="overview"
class="panel-body panel-collapse collapse in"
role="tabpanel" aria-expanded="true">
<h3 class="formcatfirst">This is the data you filled on the previous version of Community Explorer</h2>
<!-- CARTE DE VISITE -->
<div id="information-example" class="our-vcard">
<ul>
<!-- TODO if empty then click on image starts showPicImg -->
<img src="{{ (return_user.pic_src | safe) if return_user.pic_src else ''}}" width="80px" style="float:left;margin:5px">
<li>
<b>{{ return_user.info.hon_title }}
{{ return_user.info.first_name }}
<!-- TODO mid initials -->
{{ return_user.info.last_name }}</b>
</li>
<li>
<b>Country: </b>{{ return_user.info.country }}<br>
<b>Position: </b>{{ return_user.info.position }}<br>
<b>Keywords: </b>{{ return_user.info.keywords }}<br>
[ <a href="{{ return_user.info.home_url }}" target="blank">
View homepage
</a>]
<br>
</li>
</ul>
<br>
</div>
<div class="panel-heading ccsection-heading" role="tab">
<h2 class="ccsection">
Your database entries
</h2>
</div>
<div id="overview" class="readonly panel-body" role="tabpanel">
<p class="mini-hero">
Unfold the tabs below to check all the entries we have in the database.
</p>
<div class="uform-nobg accordion" id="profile_uform"> <div class="uform-white readdonly" id="profile_uform">
<form id="comex_claim_profile_form" enctype="multipart/form-data" <form id="comex_claim_profile_form" enctype="multipart/form-data"
...@@ -141,17 +90,20 @@ ...@@ -141,17 +90,20 @@
role="tabpanel" aria-expanded="false"> role="tabpanel" aria-expanded="false">
<!-- NAME & COUNTRY --> <!-- NAME & COUNTRY -->
<div class="question input-group"> {% if return_user.info.hon_title %}
<div class="question input-group">
<label for="hon_title" class="smlabel input-group-addon"> Title </label> <label for="hon_title" class="smlabel input-group-addon"> Title </label>
<input readonly id="hon_title" name="hon_title" maxlength="30" <input readonly id="hon_title" name="hon_title" maxlength="30"
type="text" class="form-control autocomp" placeholder="eg. Mr or Prof. Dr." type="text" class="form-control autocomp" placeholder="eg. Mr or Prof. Dr."
onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)" onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)"
value="{{ return_user.info.hon_title }}"> value="{{ return_user.info.hon_title }}">
</div> </div>
{% endif %}
{% if return_user.info.first_name %}
<div class="question input-group"> <div class="question input-group">
<label for="first_name" class="smlabel input-group-addon"> <label for="first_name" class="smlabel input-group-addon">
* First name First name
</label> </label>
<input readonly id="first_name" name="first_name" maxlength="30" <input readonly id="first_name" name="first_name" maxlength="30"
type="text" class="form-control" placeholder="prénom" type="text" class="form-control" placeholder="prénom"
...@@ -169,8 +121,9 @@ ...@@ -169,8 +121,9 @@
</button> </button>
</div> </div>
</div> </div>
{% endif %}
<!-- optionnel --> {% if return_user.info.middle_name %}
<div id="group-midname" class="question input-group" style='display:none'> <div id="group-midname" class="question input-group" style='display:none'>
<label for="middle_name" class="smlabel input-group-addon"> <label for="middle_name" class="smlabel input-group-addon">
Middle name Middle name
...@@ -180,24 +133,29 @@ ...@@ -180,24 +133,29 @@
onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)" onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)"
value="{{ return_user.info.middle_name }}"> value="{{ return_user.info.middle_name }}">
</div> </div>
{% endif %}
{% if return_user.info.last_name %}
<div class="question input-group"> <div class="question input-group">
<label for="last_name" class="smlabel input-group-addon"> <label for="last_name" class="smlabel input-group-addon">
* Last name Last name
</label> </label>
<input readonly id="last_name" name="last_name" maxlength="30" <input readonly id="last_name" name="last_name" maxlength="30"
type="text" class="form-control" placeholder="nom de famille" type="text" class="form-control" placeholder="nom de famille"
onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)" onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)"
value="{{ return_user.info.last_name }}"> value="{{ return_user.info.last_name }}">
</div> </div>
{% endif %}
<input readonly id="initials" name="initials" maxlength="7" <input readonly id="initials" name="initials" maxlength="7"
type="text" hidden type="text" hidden
value="{{ return_user.info.initials }}"> value="{{ return_user.info.initials }}">
{% if return_user.info.country %}
<div class="question input-group"> <div class="question input-group">
<label for="country" class="smlabel input-group-addon"> <label for="country" class="smlabel input-group-addon">
* Country Country
</label> </label>
<input readonly id="country" name="country" maxlength="60" <input readonly id="country" name="country" maxlength="60"
type="text" class="form-control autocomp" type="text" class="form-control autocomp"
...@@ -205,13 +163,14 @@ ...@@ -205,13 +163,14 @@
onblur="if(this.value=='France'){teamCityDivStyle.display = 'block'} else {teamCityDivStyle.display='none'}" onblur="if(this.value=='France'){teamCityDivStyle.display = 'block'} else {teamCityDivStyle.display='none'}"
value="{{ return_user.info.country }}"> value="{{ return_user.info.country }}">
</div> </div>
{% endif %}
</div> <!-- /panel-body --> </div> <!-- /panel-body -->
<div class="panel-footer ccsection-footer">&nbsp;</div>
</div> </div>
<!-- essential mapping infos --> <!-- essential mapping infos -->
<div class="panel ccsection-wrap"> <div class="panel ccsection-wrap">
...@@ -228,52 +187,101 @@ ...@@ -228,52 +187,101 @@
<span class="glyphicon glyphicon-collapse-down glyphicon-float-right"></span> <span class="glyphicon glyphicon-collapse-down glyphicon-float-right"></span>
<span class="glyphicon glyphicon-tags"></span>&nbsp; <span class="glyphicon glyphicon-tags"></span>&nbsp;
Mapping data Mapping data
<small>(Click here to see more)</small>
</h2> </h2>
</div> </div>
</a> </a>
<div id="map_infos_usection" <div id="map_infos_usection"
class="panel-body ccsection-uform-body panel-collapse collapse in" class="panel-body ccsection-uform-body panel-collapse collapse out"
role="tabpanel" aria-expanded="true"> role="tabpanel" aria-expanded="true">
<!-- JOB, INTERESTS AND ORGANIZATION --> <p class="mini-hero">
<h3 class="formcatfirst"> About your job and research </h3> The <strong>keywords</strong> and <strong>affiliation</strong> count as similarities to identify your network neighbours.
<br/>
</p>
<p class="mini-hero">
The <strong>keywords</strong> and <strong>affiliation</strong> will count as similarities to identify your network neighbours. Just start typing... we have autocomplete!
</p>
<!-- JOB, INTERESTS AND ORGANIZATION -->
{% if return_user.info.keywords %}
<div class="question"> <div class="question">
<div class="input-group tagbox-container"> <div class="input-group tagbox-container">
<label for="keywords" class="smlabel input-group-addon">* Key subjects</label> <label for="keywords" class="smlabel input-group-addon">Key subjects</label>
<input readonly id="keywords" name="keywords" maxlength="350" <input readonly id="keywords" name="keywords" maxlength="350"
type="text" class="form-control autocomp" placeholder="Add a keyword here" type="text" class="form-control autocomp" placeholder="Add a keyword here"
value="{{ return_user.info.keywords }}"> value="{{ return_user.info.keywords }}">
<!-- <div class="input-group-addon operation-dark">
<span class="glyphicon glyphicon-plus" onclick="TODO DEPRECATED mtiPopOneTag['keywords']"></span>
</div> -->
</div> </div>
<p class="legend">Please enter at least 5 keywords (press TAB or ENTER after each)</p>
</div> </div>
{% endif %}
{% if return_user.info.position %}
<div class="question input-group"> <div class="question input-group">
<label for="position" class="smlabel input-group-addon">* Job Position</label> <label for="position" class="smlabel input-group-addon">Job Position</label>
<input readonly id="position" name="position" maxlength="30" <input readonly id="position" name="position" maxlength="30"
type="text" class="form-control autocomp" placeholder="titre" type="text" class="form-control autocomp" placeholder="titre"
onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)" onblur="cmxClt.makeBold(this)" onfocus="cmxClt.makeNormal(this)"
value="{{ return_user.info.position }}"> value="{{ return_user.info.position }}">
</div> </div>
{% endif %}
<!-- ORG QUESTIONS -->
{% if return_user.info.org %}
<div class="question"> <div class="question">
<div class="input-group"> <div class="input-group">
<label for="team_lab" class="smlabel input-group-addon">* Lab / Team / Dept</label> <label for="org" class="smlabel input-group-addon">Parent Institution</label>
<input readonly id="org" name="org" maxlength="120"
type="text" class="form-control autocomp" placeholder='eg "CNRS" or "University of Oxford"'
value="{{ return_user.info.org }}">
</div>
</div>
{% endif %}
{% if return_user.info.org_type and return_user.info.org_type != "null" %}
<div class="question">
<div class="input-group">
<label for="org_type" class="smlabel input-group-addon">Institution Type</label>
<select id="org_type" name="org_type"
class="custom-select form-control"
onchange="if(this.value=='other'){otherInstDivStyle.display = 'block'} else {otherInstDivStyle.display='none'}">
<option selected disabled value="">Please select</option>
<option value="university">University</option>
<option value="public R&amp;D org">Public sector R&amp;D organization</option>
<option value="public other org">Other public sector organization</option>
<option value="private org">Private sector organization</option>
<option value="none">None at the moment</option>
<option value="other"
onclick="otherInstDivStyle.display = 'block'"
>Other</option>
</select>
</div>
<!-- Other institution type <=> only if previous choice == 5 -->
<div class="question conditional-q" id="other_org_div">
<div class="input-group">
<label for="other_org_type" class="smlabel input-group-addon">Other type</label>
<input readonly id="other_org_type" name="other_org_type" maxlength="120"
type="text" class="form-control" placeholder="Clarify here the type of your parent institution">
</div>
</div>
</div>
{% endif %}
{% if return_user.info.team_lab %}
<div class="question">
<div class="input-group">
<label for="team_lab" class="smlabel input-group-addon">Lab / Team / Dept</label>
<input readonly id="team_lab" name="team_lab" maxlength="120" <input readonly id="team_lab" name="team_lab" maxlength="120"
type="text" class="form-control" placeholder="More detailed affiliation, if relevant" type="text" class="form-control" placeholder="More detailed affiliation, if relevant"
value="{{ return_user.info.team_lab }}"> value="{{ return_user.info.team_lab }}">
</div> </div>
</div> </div>
{% endif %}
{% if return_user.info.org_city %}
<!-- Lab city <=> only for France --> <!-- Lab city <=> only for France -->
<div class="question conditional-q" id="team_city_div"> <div class="question conditional-q" id="team_city_div">
<div class="input-group"> <div class="input-group">
...@@ -283,33 +291,29 @@ ...@@ -283,33 +291,29 @@
value="{{ return_user.info.org_city }}"> value="{{ return_user.info.org_city }}">
</div> </div>
</div> </div>
{% endif %}
{% if return_user.info.job_looking_date or return_user.info.hashtags %}
<h3 class="formcat"> About your future activities </h3> <h3 class="formcat"> About your future activities </h3>
{% endif %}
{% if return_user.info.job_looking_date %}
<div class="question"> <div class="question">
<div class="input-group"> <div class="input-group">
<label for="job_bool" class="smlabel input-group-addon">Soon on the job market? <br/><small>and do you want our job contacts?</small></label> <label for="job_bool" class="smlabel input-group-addon">Job offers</label>
<select id="job_bool" name="job_bool" <select id="job_bool" name="job_bool"
class="custom-select form-control"> class="custom-select form-control">
<option selected value="No">No</option> <option selected value="No">No</option>
<option value="Yes">Yes</option> <option value="Yes">Yes</option>
</select> </select>
</div> </div>
<!-- job_looking_date_div <=> only if previous choice == Yes -->
<div class="question conditional-q" id="job_looking_div">
<p class="legend">
We'll show you're available for job offers...
<br/>(it can be until a given date)</p>
<div class="input-group">
<label for="job_looking_date" class="smlabel input-group-addon"><small>Subscribe until ?</small></label>
<input readonly id="job_looking_date" name="job_looking_date" maxlength="10"
type="text" class="form-control" placeholder="ex: 2019/09/30">
</div>
<p id="job_date_message" class="legend red" style="font-weight:bold"></p>
</div>
</div> </div>
{% endif %}
{% if return_user.info.hashtags %}
<div class="question"> <div class="question">
<p class="legend">Hashtags for community interest groups (seminars, mailing lists, events...)</p> <p class="legend">Hashtags for community interest groups (seminars, mailing lists, events...)</p>
<div class="input-group tagbox-container"> <div class="input-group tagbox-container">
...@@ -318,89 +322,14 @@ ...@@ -318,89 +322,14 @@
type="text" class="form-control" placeholder="eg #dataviz, #networks, #rochebrune2018" type="text" class="form-control" placeholder="eg #dataviz, #networks, #rochebrune2018"
value="{{ return_user.info.hashtags }}"> value="{{ return_user.info.hashtags }}">
</div> </div>
<p class="legend">(press TAB or ENTER after each)</p>
</div> </div>
{% endif %}
</div> <!-- /panel-body --> </div> <!-- /panel-body -->
<div class="panel-footer ccsection-footer">&nbsp;</div>
</div>
<!-- Affiliation -->
<div class="panel ccsection-wrap">
<a class="ccsection-toggle"
data-parent="#profile_uform"
data-toggle="collapse"
href="#org_infos_usection"
aria-controls="org_infos_usection"
id="ccsection_toggle_org_infos">
<div class="panel-heading ccsection-heading" role="tab">
<h2 class="ccsection"
title="This is your affiliation data, if you want to fill it it'll be available in stats.">
<span class="glyphicon glyphicon-collapse-down glyphicon-float-right"></span>
<span class="glyphicon glyphicon-briefcase"></span>
Affiliation details
</h2>
</div>
</a>
<div id="org_infos_usection"
class="panel-body ccsection-uform-body panel-collapse collapse out"
role="tabpanel" aria-expanded="false">
<!-- ORG QUESTIONS -->
<div class="question">
<div class="input-group">
<label for="org" class="smlabel input-group-addon">* Parent Institution</label>
<input readonly id="org" name="org" maxlength="120"
type="text" class="form-control autocomp" placeholder='eg "CNRS" or "University of Oxford"'
value="{{ return_user.info.org }}">
</div>
</div>
<div class="question">
<div class="input-group">
<label for="org_type" class="smlabel input-group-addon">* Institution Type</label>
<select id="org_type" name="org_type"
class="custom-select form-control"
onchange="if(this.value=='other'){otherInstDivStyle.display = 'block'} else {otherInstDivStyle.display='none'}">
<option selected disabled value="">Please select</option>
<option value="university">University</option>
<option value="public R&amp;D org">Public sector R&amp;D organization</option>
<option value="public other org">Other public sector organization</option>
<option value="private org">Private sector organization</option>
<option value="none">None at the moment</option>
<option value="other"
onclick="otherInstDivStyle.display = 'block'"
>Other</option>
</select>
</div>
<!-- Other institution type <=> only if previous choice == 5 -->
<div class="question conditional-q" id="other_org_div">
<div class="input-group">
<label for="other_org_type" class="smlabel input-group-addon">Other type</label>
<input readonly id="other_org_type" name="other_org_type" maxlength="120"
type="text" class="form-control" placeholder="Clarify here the type of your parent institution">
</div>
</div>
</div>
</div> <!-- /panel-body -->
<div class="panel-footer ccsection-footer">&nbsp;</div>
</div> </div>
<!-- additional mapping infos --> <!-- additional mapping infos -->
<div class="panel ccsection-wrap"> <div class="panel ccsection-wrap">
...@@ -417,7 +346,8 @@ ...@@ -417,7 +346,8 @@
<span class="glyphicon glyphicon-collapse-down glyphicon-float-right"></span> <span class="glyphicon glyphicon-collapse-down glyphicon-float-right"></span>
<span class="glyphicon glyphicon-picture"></span> <span class="glyphicon glyphicon-picture"></span>
Additional Personal data Additional Personal data
</h2> <small>(Click here to see more)</small>
</h2>
</div> </div>
</a> </a>
...@@ -426,13 +356,8 @@ ...@@ -426,13 +356,8 @@
class="panel-body ccsection-uform-body panel-collapse collapse out" class="panel-body ccsection-uform-body panel-collapse collapse out"
role="tabpanel" aria-expanded="false"> role="tabpanel" aria-expanded="false">
<p class="mini-hero"> {% if return_user.info.home_url %}
The <strong>home page (url)</strong>, <strong>picture (url or file)</strong> and <strong>free description</strong> will allow your neighbours to know you a little better. <h3 class="formcat"> Homepage</h3>
</p>
<h3 class="formcat"> Homepage and other IDS </h3>
<div class="question"> <div class="question">
<div class="input-group"> <div class="input-group">
<label for="home_url" class="smlabel input-group-addon">Homepage</label> <label for="home_url" class="smlabel input-group-addon">Homepage</label>
...@@ -441,14 +366,9 @@ ...@@ -441,14 +366,9 @@
value="{{ return_user.info.home_url }}"> value="{{ return_user.info.home_url }}">
</div> </div>
</div> </div>
<div class="question"> {% endif %}
<div class="input-group">
<label for="linked_ids" class="smlabel input-group-addon">Linked IDs</label>
<input readonly id="linked_ids" name="linked_ids" maxlength="120"
type="text" readonly placeholder="available shortly">
</div>
</div>
{% if return_user.info.pic_url %}
<h3 class="formcat"> Picture </h3> <h3 class="formcat"> Picture </h3>
<div class="question"> <div class="question">
<p class="legend">Link to a picture of yours...</p> <p class="legend">Link to a picture of yours...</p>
...@@ -459,7 +379,9 @@ ...@@ -459,7 +379,9 @@
value="{{ return_user.info.pic_url }}"> value="{{ return_user.info.pic_url }}">
</div> </div>
</div> </div>
{% endif %}
{% if return_user.info.pic_fname %}
<div class="question" style="margin-bottom:.5em" > <div class="question" style="margin-bottom:.5em" >
<p class="legend">... or upload a picture (png, jpg or gif, max source size: 200kB)</p> <p class="legend">... or upload a picture (png, jpg or gif, max source size: 200kB)</p>
<!-- <p class="legend">Upload a picture of yours (max source size: 4MB, then the image will be reduced to 200kB)</p> --> <!-- <p class="legend">Upload a picture of yours (max source size: 4MB, then the image will be reduced to 200kB)</p> -->
...@@ -472,13 +394,17 @@ ...@@ -472,13 +394,17 @@
</div> </div>
<p id="picture_message" class="legend red" style="font-weight:bold"></p> <p id="picture_message" class="legend red" style="font-weight:bold"></p>
</div> </div>
{% endif %}
<div id="box_show_pic"> <div id="box_show_pic">
<img id="show_pic" src=""></img> <img id="show_pic" src=""></img>
</div> </div>
<!-- OTHER PERSONAL INFO --> <!-- OTHER PERSONAL INFO -->
{% if return_user.info.gender or return_user.info.interests_text %}
<h3 class="formcat"> Complementary information </h3> <h3 class="formcat"> Complementary information </h3>
{% endif %}
{% if return_user.info.gender and return_user.info.gender != 0 %}
<div class="question"> <div class="question">
<div class="input-group"> <div class="input-group">
<label for="gender" class="smlabel input-group-addon">Gender</label> <label for="gender" class="smlabel input-group-addon">Gender</label>
...@@ -491,7 +417,9 @@ ...@@ -491,7 +417,9 @@
<!-- £TODO js select return_user.info.gender --> <!-- £TODO js select return_user.info.gender -->
</div> </div>
</div> </div>
{% endif %}
{% if return_user.info.interests_text %}
<div class="question"> <div class="question">
<div class="input-group"> <div class="input-group">
<label for="interests_text" class="input-group-addon"> <label for="interests_text" class="input-group-addon">
...@@ -506,78 +434,164 @@ ...@@ -506,78 +434,164 @@
</div> </div>
<p class="legend">Optional, ~15 lines max (1200 chars)</p> <p class="legend">Optional, ~15 lines max (1200 chars)</p>
</div> </div>
{% endif %}
</div> <!-- /panel-body --> </div> <!-- /panel-body -->
<div class="panel-footer ccsection-footer">&nbsp;</div>
</div> </div>
<!-- hidden input for modification date --> <!-- no submit, this form is read-only -->
<input readonly id="last_modified_date" name="last_modified_date" type="text" hidden>
</input>
<!-- hidden input for main user id --> </form>
<input readonly id="luid" name="luid" type="text" hidden </div>
value="{{ return_user.uid | safe }}">
</input>
<!-- hidden input for doors user id --> <p class="mini-hero">
<input readonly id="doors_uid" name="doors_uid" type="text" hidden <br/><br/>
value="{{ return_user.info.doors_uid | safe }}"> During the renewal period, you can claim this data and get the possibility to change or remove it.
</input> </p>
<p class="mini-hero">
Simply <strong>register your email with the Institute's portal at the bottom of this page</strong>. If you don't claim this data, we will remove it after 3 months.
</p>
</div>
<div class="panel-footer ccsection-footer" style="min-height:2em;">&nbsp;</div>
</div>
<!-- hidden input for special action: DELETE USER -->
<input readonly id="delete_user" name="delete_user" type="checkbox" hidden>
</input>
<!-- <p> TEST UID {{ return_user.uid | safe }} </p> --> <div class="panel ccsection-wrap">
<!-- == S U B M I T == --> <div class="panel-heading ccsection-heading" role="tab">
<div style="text-align:center"> <h2 class="ccsection">
<!-- @type button to avoid ENTER submit --> What the others see
<button class="btn btn-lg btn-success" id="form_submit" </h2>
type="button" onclick="theUForm.elForm.submit()"> </div>
Save profile
</button>
<div id="avcard" class="readonly panel-body" role="tabpanel">
<p class="mini-hero">
This "visiting card" is shown to those who find you in the directory.
</p>
<!-- CARTE DE VISITE -->
<div id="information-example" class="our-vcard">
<!-- TODO if empty then click on image starts showPicImg -->
<img src="{{ (return_user.pic_src | safe) if return_user.pic_src else ''}}" class="our-vcard-img">
<ul>
<li class=bigger>
<b>{{ return_user.info.hon_title }}
{{ return_user.info.first_name }}
<!-- TODO mid initials -->
{{ return_user.info.last_name }}</b>
<br/>
<br/>
</li>
<li>
<b>Country: </b>{{ return_user.info.country }}<br>
<b>Position: </b>{{ return_user.info.position }}<br>
<b>Keywords: </b>{{ return_user.info.keywords }}<br>
[ <a href="{{ return_user.info.home_url }}" target="blank">
View homepage
</a>]
<br>
</li>
</ul>
<br>
</div>
</div>
<div class="panel-footer ccsection-footer" style="min-height:2em;">&nbsp;</div>
</div>
<!-- createlogin -->
<div class="uform-nobg">
<!-- EMAIL & PASSWORD -->
<h2 class="cat"> Register and claim this profile </h2>
<p class="mini-hero">
To gain back your access to the data, just pick a password below and this account will become active, receive a confirmation email from the ISC services portal "Doors"
</p>
<form id="comex_createlogin_form" enctype="multipart/form-data"
method="post" onsubmit="console.info('createlogin submitted')">
<div class="question">
<!-- POSS login within modal like comex_test_modal -->
<p class="legend">Your email will also be your login for the ISC services. </p>
<div class="input-group">
<!-- email validation onblur/onchange is done by cmxClt.uauth in comex_user_shared_auth.js -->
<label for="email" class="smlabel input-group-addon">* Email</label>
<input readonly id="email" name="email" maxlength="255" readonly
type="text" class="form-control readonly"
value="{{ return_user.info.email }}">
<!-- doors return value icon -->
<div class="uicontitmsg input-group-addon"
title="The email will be checked in our DB after you type and leave the box.">
<span class="uicon glyphicon glyphicon-question-sign grey"
></span>
</div>
</div>
<!-- doors return value message -->
<p class="umessage legend"></p>
</div> </div>
</form>
</div>
</div> <div class="question">
<div class="panel-footer ccsection-footer">&nbsp;</div> <p class="legend">Please make your password difficult to predict.</p>
<div class="input-group">
<label for="password" class="smlabel input-group-addon">* Password</label>
<input id="password" name="password" maxlength="30"
type="password" class="form-control" placeholder="Create a password">
</div>
</div>
</div> <div class="question">
<div class="input-group">
<label for="password2" class="smlabel input-group-addon">* Password</label>
<input id="password2" name="password2" maxlength="30"
type="password" class="form-control" placeholder="Repeat the password">
</div>
<p class="umessage legend red" style="font-weight:bold"></p>
</div>
<!-- ########################### ( FORM ) ########################## -->
<!-- todo onsubmit also save to cache -->
<!-- == S U B M I T == -->
<button class="btn btn-lg btn-success" style="float:right"
id="form_submit" type=button disabled
onclick="if (validateAndMsg(event)) {registerDoorsAndSubmit()}">
Submit your form to the doors portal.
</button>
<!-- hidden input for main user id -->
<input readonly id="luid" name="luid" type="text" hidden
value="{{ return_user.uid | safe }}">
</input>
<!-- hidden input for doors user id after registration -->
<input readonly id="doors_uid" name="doors_uid" type="text" hidden>
</input>
</form>
</div>
</div> </div>
<div class="spacer col-lg-2 col-md-1 hidden-sm-down">&nbsp;</div> <div class="spacer col-lg-2 col-md-1 hidden-sm-down">&nbsp;</div>
</div> </div>
<div class="menu-right-fixed"> <div class="menu-right-fixed">
<!-- main validation message --> <!-- main validation message -->
<p id="main_message" class="legend"></p> <p id="main_message" class="legend"></p>
</div> </div>
<!-- CNIL WARNING --> <!-- CNIL WARNING -->
<div class="row spacerrow">&nbsp;</div>
<div class="row"> <div class="row">
<div class="spacer col-lg-1 hidden-md-down">&nbsp;</div> <div class="spacer col-lg-1 hidden-md-down">&nbsp;</div>
<div class="col-lg-9 col-md-11 col-sm-12"> <div class="col-lg-9 col-md-11 col-sm-12">
<h3 class="formcat"> About your data </h3> <h2 class="cat"> About your data </h2>
<div class="cartouche" id="cnil_warning"> <div class="cartouche" id="cnil_warning">
<p>Les informations recueillies à partir de ce formulaire font l’objet d’un traitement <p>Les informations recueillies à partir de ce formulaire font l’objet d’un traitement
informatique destiné à: </p> informatique destiné à: </p>
...@@ -594,8 +608,8 @@ ...@@ -594,8 +608,8 @@
loi « informatique et libertés » du 6 janvier 1978 modifiée</a>, loi « informatique et libertés » du 6 janvier 1978 modifiée</a>,
vous disposez d’un <a href="https://www.cnil.fr/fr/le-droit-dacces">droit d’accès</a> vous disposez d’un <a href="https://www.cnil.fr/fr/le-droit-dacces">droit d’accès</a>
et <a href="https://www.cnil.fr/fr/le-droit-de-rectification">de rectification</a> et <a href="https://www.cnil.fr/fr/le-droit-de-rectification">de rectification</a>
aux informations qui vous concernent, en vous adressant à :</p> aux informations qui vous concernent.<!-- , en vous adressant à :</p>
<p class="rtecenter"><strong>todo@iscpif.fr</strong></p> <p class="rtecenter"><strong>todo@iscpif.fr</strong></p> -->
<p>Vous pouvez également, pour des motifs légitimes, <p>Vous pouvez également, pour des motifs légitimes,
<a href="https://www.cnil.fr/fr/le-droit-dopposition">vous opposer au traitement <a href="https://www.cnil.fr/fr/le-droit-dopposition">vous opposer au traitement
des données vous concernant</a>. Pour en savoir plus, <a href="https://www.cnil.fr/fr/comprendre-vos-droits"> des données vous concernant</a>. Pour en savoir plus, <a href="https://www.cnil.fr/fr/comprendre-vos-droits">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment