Subversion Repositories wimsdev

Rev

Rev 16020 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. !! Create a new virgin class (in a structure or not)
  2. !set wims_form_method=post
  3. !! password must contain 4-16 alphanumeric characters
  4. !set password_pattern=[a-zA-Z0-9]{4,16}
  5.  
  6. !if $step=$empty or $step=pre
  7.   <div class="wims_content">
  8.     <p>$name_choose</p>
  9.     <p>
  10.       !href cmd=reply&step=0&cltype=0 $wims_name_create_class
  11.     </p>
  12.  
  13.     !set wims_menu_items=!append line create_class,1,cmd=reply&step=0&cltype=0\
  14.       to $wims_menu_items
  15.  
  16.     <p>
  17.       !if 2 isitemof $alltypes
  18.         !href cmd=reply&step=0&cltype=2 $wims_name_create_superclass
  19.         !set wims_menu_items=!append line create_superclass,1,cmd=reply&step=0&cltype=2\
  20.         to $wims_menu_items
  21.       !else
  22.         <span class="wims_emph"><strike>$wims_name_create_superclass</strike></span> ($noright).
  23.       !endif
  24.     </p>
  25.     <p>
  26.       !if 4 isitemof $alltypes
  27.         !href cmd=reply&step=0&cltype=4 $wims_name_create_portal
  28.             ($name_expert)
  29.         !set wims_menu_items=!append line create_portal,1,cmd=reply&step=0&cltype=4\
  30.             to $wims_menu_items
  31.       !else
  32.         <span class="wims_emph"><strike>$wims_name_create_portal</strike></span> ($noright).
  33.       !endif
  34.     </p>
  35.  
  36.     <span class="wims_warning">$wims_name_help</span>:
  37.     !read lang/help.phtml.$modu_lang 1
  38.   </div>
  39.   !exit
  40. !endif
  41.  
  42. !if $step=0
  43.   <p>
  44.     !read lang/help.phtml.$modu_lang 2
  45.   </p>
  46.   !form reply
  47.     !default agreecgu=$user_agreesupcgu
  48.     !default agreecgu=no
  49.     <div>
  50.       !let user_agreesupcgu=!defof user_agreesupcgu in $userdef
  51.       !if $user_agreesupcgu!=yes
  52.         $(name_cgu[1])
  53.         !set wims_ref_id=js_cgu_link
  54.         !href target=wims_internal module=adm/light&phtml=cgu.phtml $(name_cgu[2])
  55.         $(name_cgu[3])
  56.         !set wims_ref_class=agree_cgu
  57.         !formradio agreecgu list yes,no prompt $wims_name_yes,$wims_name_no
  58.         <div class="formHelp">$(name_cgu[4])</div>
  59.         <script>
  60.           !! User can only submit form if he accepted the Terms of services.
  61.           function changeHandler(event) {
  62.             if ( this.value === 'no' ) {
  63.               submit_btn.disabled=true;
  64.               submit_btn.classList.add("disabled");
  65.               submit_formHelp.innerHTML = "$noagreecgu_msg";
  66.               submit_formHelp.classList.add("wims_msg","warning");
  67.             } else if ( this.value === 'yes' ) {
  68.               submit_btn.disabled=false;
  69.               submit_btn.classList.remove("disabled");
  70.               submit_formHelp.innerHTML = "";
  71.               submit_formHelp.classList.remove("wims_msg","warning");
  72.             }
  73.           }
  74.  
  75.           !! User can only click on "agree_cgu" if he previously clicked on the link to see the CGU.
  76.           document.addEventListener("DOMContentLoaded", function() {
  77.  
  78.             var agree_cgu = "no";
  79.             var radio_options = document.querySelectorAll(".agree_cgu>input");
  80.             for (var i = 0; i < radio_options.length; ++i) {
  81.               var option = radio_options[i];
  82.               if (option.checked) {
  83.                 agree_cgu = option.value;
  84.               }
  85.               if (agree_cgu == "no"){
  86.                 option.disabled = true;
  87.               }
  88.             }
  89.  
  90.             submit_btn = document.getElementById("js_newclass_submit");
  91.             submit_formHelp = document.getElementById("js_newclass_formHelp");
  92.             if (agree_cgu == "no"){
  93.               submit_btn.disabled=true;
  94.               submit_btn.classList.add("disabled");
  95.               submit_formHelp.innerHTML = "$noagreecgu_msg";
  96.               submit_formHelp.classList.add("wims_msg","warning");
  97.             }
  98.  
  99.  
  100.             !!/** Adds onchange on radios to activate the submit button */
  101.             Array.prototype.forEach.call(radio_options, function(option) {
  102.               option.addEventListener('change', changeHandler);
  103.             });
  104.  
  105.            cgu_link = document.getElementById("js_cgu_link");
  106.            cgu_link.addEventListener('click', function() {
  107.               for (var i = 0; i < radio_options.length; ++i) {
  108.                   radio_options[i].disabled = false;
  109.               }
  110.             })
  111.           });
  112.         </script>
  113.       !else
  114.         <input type="hidden" name="agreecgu" value="yes" \>
  115.         $name_supcgu
  116.         !set wims_ref_id=js_cgu_link
  117.         !href target=wims_internal module=adm/light&phtml=cgu.phtml $(name_cgu[2])
  118.         .
  119.       !endif
  120.     </div>
  121.  
  122.     <p>
  123.       !read lang/help.phtml.$modu_lang 2_1
  124.     </p>
  125.  
  126.     <input type="hidden" name="step" value="1">
  127.  
  128.     <fieldset class="property_fields blockcenter">
  129.       <legend>$wims_name_Supervisor</legend>
  130.       <div class="flex_box">
  131.         !set suplim2 =$[rint($suplim/3)]
  132.         !set emaillim2= $[rint(2*$emaillim/3)]
  133.         !if $Cltype=1
  134.           <div class="field box fullwidth">
  135.             !let firstname=$wims_firstname
  136.             !let lastname=$wims_lastname
  137.             <strong>$wims_name_lastname</strong>: $wims_firstname $wims_lastname
  138.           </div>
  139.         !else
  140.           <div class="field box halfwidth">
  141.             <label for="firstname">$wims_name_firstname</label>
  142.             <input type="text" pattern=".{2,$suplim}" size="$suplim2" name="firstname" value="$firstname" id="firstname" maxlength="$suplim" required="required">
  143.             <div class="formHelp">$name_atmost $suplim $name_characters</div>
  144.           </div>
  145.           <div class="field box halfwidth">
  146.             <label for="lastname">$wims_name_lastname</label>
  147.             <input type="text" pattern=".{2,$suplim}" size="$suplim2" name="lastname" value="$lastname" id="lastname" maxlength="$suplim" required="required">
  148.             <div class="formHelp">$name_atmost $suplim $name_characters</div>
  149.           </div>
  150.         !endif
  151.  
  152.         <div class="field box fullwidth">
  153.           <label for="email">$wims_name_email</label>
  154.           !if $Cltype=1 and $email!=$empty
  155.             !default email=$email
  156.             &#58; <a href="mailto:$email">$email</a>
  157.          !else
  158.             <input type="email" size="$emaillim2" name="email" value="$email" id="email" maxlength="$emaillim" pattern="[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" required="required">
  159.             <div class="formHelp">$name_atmost $emaillim $name_characters</div>
  160.           !endif
  161.           !if $regpolicy=email
  162.             <div class="formHelp">$name_regpolicy</div>
  163.           !endif
  164.         </div>
  165.  
  166.         !if $Cltype!=1
  167.           <div class="field box">
  168.             <label for="passsup">$wims_name_Password ($name_sup)</label>
  169.             <input size="16" type="password" name="passsup" id="passsup" maxlength="16" pattern="$password_pattern" required="required">
  170.             <div class="formHelp">$name_warningpass. $name_help1</div>
  171.           </div>
  172.         !endif
  173.       </div>
  174.     </fieldset>
  175.  
  176.     <fieldset class="property_fields blockcenter">
  177.       <legend>$name_classe</legend>
  178.       <div class="flex_box">
  179.         <div class="field box fullwidth">
  180.           <label for="institution">$name_Name_portal</label>
  181.           !if $Cltype isin 13
  182.             !let institution=$wims_institutionname
  183.             &#58; $institution
  184.          !else
  185.             <input type="text" size="$instlim" pattern=".{2,$instlim}" name="institution" value="$institution" id="institution" maxlength="$instlim" required="required">
  186.             <div class="formHelp">$name_atmost $instlim $name_characters</div>
  187.           !endif
  188.         </div>
  189.  
  190.         <div class="field box halfwidth">
  191.           <label for="description">$wims_name_name $name_classesss</label>
  192.           <input type="text" size="28" pattern=".{2,$desclim}" name="description" value="$description" id="description" maxlength="$desclim" required="required">
  193.           <div class="formHelp">$name_atmost $desclim $name_characters</div>
  194.         </div>
  195.  
  196.         <div class="field box halfwidth">
  197.           <label for="location">$name_location</label>
  198.           <input type="text" size="$desclim" name="location" value="$location" id="location" maxlength="$desclim">
  199.           <label for="geoloc">$name_geoloc</label>
  200.           <input type="text" size="$desclim" name="geoloc" value="$geoloc" id="geoloc" maxlength="$desclim" placeholder="X,Y">
  201.           !! ---------- add to read autocompletion location
  202.           !set auto=!lookup $lang in wimshome/log/stat/geoloc.dictionary
  203.           !if $auto!=$empty
  204.             !read adm/geoloc/$auto
  205.           !endif
  206.           <div class="formHelp">$name_location_help</div>
  207.         </div>
  208.  
  209.         <div class="field box halfwidth">
  210. !! if no class password defined this mean that it s an open class (without advertising supervisor)
  211. !!          !if $Cltype isin 24
  212.             !set tmp=$ required="required"
  213. !!          !else
  214. !!            !reset tmp
  215. !!          !endif
  216.           <label for="password">$wims_name_Password ($name_classesss)</label>
  217.           <input size="16" type="password" name="password" id="password" maxlength="16" pattern="$password_pattern"$tmp>
  218.           !reset tmp
  219.           <div class="formHelp">
  220.             $name_warningpass.
  221.             !if $Cltype<2
  222.               $name_help2
  223.             !else
  224.               $name_help3
  225.             !endif
  226.           </div>
  227.         </div>
  228.  
  229.         <div class="field box halfwidth">
  230.           <label for="exp_date">$wims_name_expiration</label>
  231.           !set begin=!sh date --date '1 day ago' +%Y%m%d
  232.           !set end=!sh date --date '1 years 3 months' +%Y%m%d
  233.           !read adm/datepickerform.phtml $exp_date\
  234. exp_date\
  235. "$begin","$end"
  236.           <div class="formHelp">$name_help_date</div>
  237.         </div>
  238.  
  239.         <div class="field box halfwidth">
  240.           <label for="limit">$name_help_limit</label>
  241.           !let num=!charcnt $wims_class_user_limit
  242.           <input type="number" size="3" name="limit" value="$limit" id="limit" maxlength="$num">
  243.           <div class="formHelp">&lt; $wims_class_user_limit</div>
  244.         </div>
  245.  
  246.         !if $Cltype notin 24
  247.           !set nblevel=!itemcnt $wims_listlevel
  248.           <div class="field box halfwidth">
  249.             <label for="level">$wims_name_level $name_classesss</label>
  250.             <select name="level" id="level">
  251.               !for k=1 to $nblevel
  252.                 !if $(wims_listlevel[$k])=$level
  253.                   <option selected="selected" value="$(wims_listlevel[$k])">$(name_wims_listlevel[$k])</option>
  254.                 !else
  255.                   <option value="$(wims_listlevel[$k])">$(name_wims_listlevel[$k])</option>
  256.                 !endif
  257.               !next k
  258.             </select>
  259.           </div>
  260.         !endif
  261.  
  262.         !if $cltype isin 024
  263.           !!! also in public_html/modules/adm/class/config/authtype.phtml
  264.           !set auth_cas_list=!defof cas_auth in wimshome/log/wims.conf
  265.           !set auth_cas_list=!replace internal | by ; in $auth_cas_list
  266.           !set auth_cas_url_list=$(auth_cas_list[;1])
  267.           <div class="field box halfwidth">
  268.             <label for="cas_auth">$name_cas ($name_optional)</label>
  269.             !if $jquery_defined=yes and $auth_cas_url_list!=$empty
  270.               !set auth_cas_cnt=!itemcnt $auth_cas_url_list
  271.               !reset auth_cas_name_list
  272.               !for j=1 to $auth_cas_cnt
  273.                 !set tmp=$(auth_cas_list[$j;2])
  274.                 !default tmp=$(auth_cas_url_list[$j])
  275.                 !set auth_cas_name_list=!append item $tmp to $auth_cas_name_list
  276.                 !reset tmp
  277.               !next
  278.               !formselect cas_auth list other,$auth_cas_url_list prompt $wims_name_otherurl,$auth_cas_name_list
  279.               <input type="url" size="35" name="cas_auth" value="$cas_auth" placeholder="https://sso.my-ent.org/cas">
  280.             !else
  281.               <input type="url" id="cas_auth" size="35" name="cas_auth" value="$cas_auth" placeholder="https://sso.my-ent.org/cas">
  282.             !endif
  283.             <div class="formHelp">$name_cas_help</div>
  284.           </div>
  285.           !if $jquery_defined=yes
  286.             <script>
  287.               $$('#cas_auth').on('change', function() {
  288.                 var check = this.value === "other";
  289.                 var text_input = $$(this).next();
  290.                 !! only the select OR the input will be sent
  291.                 text_input.toggle(check);
  292.                 if(check){
  293.                   $$(this).prop('name', "");
  294.                   text_input.prop('name', "cas_auth");
  295.                 }else{
  296.                   $$(this).prop('name', "cas_auth");
  297.                   text_input.prop('name', "");
  298.                 }
  299.               }).change();
  300.             </script>
  301.           !endif
  302.         !endif
  303.         !if $Cltype=0
  304.           !set field_width=halfwidth
  305.         !else
  306.           !set field_width=fullwidth
  307.         !endif
  308.         <div class="field box $field_width">
  309.           <label for="secure">$name_secure ($name_sup)</label>
  310.           !default secure=all
  311.           <input type="text" size="30" name="secure" value="$secure" id="secure">
  312.           <div class="formHelp">$name_host</div>
  313.           !reset secure
  314.           !!!if $Cltype<3
  315.             !! $name_optional.
  316.           !!!endif
  317.         </div>
  318.       </div>
  319.     </fieldset>
  320.     <div class="wimscenter wimsform">
  321. !if $user_agreesupcgu!=yes
  322.       <input id="js_newclass_submit" type="submit" value="$name_continue">
  323.       <div id="js_newclass_formHelp" class="formHelp"></div>
  324. !else
  325.    <input type="submit" value="$name_continue">
  326. !endif
  327.     </div>
  328.   !formend
  329.   !exit
  330. !endif step 0
  331.  
  332. !! STEP 1 : rechecking passwords
  333. !if $step=1
  334.   !read lang/help.phtml.$modu_lang step1
  335.  
  336.   !form reply
  337.     <input type="hidden" name="step" value="2">
  338.     <fieldset class="property_fields blockcenter">
  339.       <legend>$name_password_check</legend>
  340.       !if $Cltype!=1
  341.         <div class="field box fullwidth">
  342.           <label for="passsup"> $wims_name_Password $name_sup</label>
  343.           <input type="password" name="passsup" id="passsup" maxlength="16" required="required">
  344.         </div>
  345.       !endif
  346.       !if $pword!=$empty
  347.         <div class="field box fullwidth">
  348.           <label for="password">$wims_name_Password $name_classesss</label>
  349.           <input type="password" name="password" id="password" maxlength="16" required="required">
  350.         </div>
  351.       !endif
  352.       <div class="wimscenter wimsform">
  353.         !set wims_ref_class=wims_button wims_secondary_button
  354.         !href module=$module&cmd=reply&step=0 $wims_name_back2
  355.         <input type="submit" value="$name_continue">
  356.       </div>
  357.     </fieldset>
  358.   !formend
  359.   !exit
  360. !endif step 1
  361.  
  362. !if $step=2
  363.   !read lang/help.phtml.$modu_lang step2
  364.   !form reply
  365.     <input type="hidden" name="step" value="3">
  366.     <fieldset class="property_fields blockcenter">
  367.       <div class="field box">
  368.         <label for="typecode">$name_code</label>
  369.         <input size="12" name="typecode" id="typecode" type="text">
  370.       </div>
  371.       <div class="wimscenter wimsform">
  372.         <input type="submit" value="$name_continue">
  373.       </div>
  374.     </fieldset>
  375.   !formend
  376.   <span class="wims_warning">$wims_name_warning</span>:
  377.   <span class="warning_code">$name_warning_code</span>
  378.   !exit
  379. !endif step 2
  380.  
  381. !if $step=3
  382.   !read lang/help.phtml.$modu_lang step3
  383.   !if $Cltype iswordof 0 1
  384.     !let tmp=!positionof item $ilevel in $wims_listlevel
  385.     ($wims_name_level <span class="wims_emph">$(name_wims_listlevel[$tmp])</span>).
  386.   !endif
  387.   !read adm/class/initclass $code,auth
  388.   !if $(class_authidp[1;])=cas
  389.     !set link_=$host_auth/login?service=
  390.   !else
  391.     !set link_=$wims_ref_name?
  392.   !endif
  393.   <br class="spacer">
  394.   !read adm/class/links.phtml $code
  395.   !exit
  396. !endif step 3
  397.