File:  [LON-CAPA] / loncom / html / adm / helper / parameter.helper
Revision 1.3: download - view: text, annotated - select for diffs
Thu May 29 16:38:01 2003 UTC (21 years, 5 months ago) by bowersj2
Branches: MAIN
CVS tags: version_0_99_2, version_0_99_1, conference_2003, HEAD
Half of a fix for bug 1511, param helper doesn't work for maps.

<helper title="Course Parameter Helper" requiredpriv='opa'>

  <exec>
    my %dateTypeHash = ('open_date' => "opening date",
                        'due_date' => "due date",
                        'answer_date' => "answer open date");
    my %levelTypeHash = ('whole_course' => "all problems in the course",
                         'map' => 'the selected folder',
                         'resource' => 'the selected problem');
    $helper->{DATA}->{'dateTypeHash'} = \%dateTypeHash;
    $helper->{DATA}->{'levelTypeHash'} = \%levelTypeHash;

    $helper->{DATA}->{'levelType'} = sub { 
           return $helper->{DATA}->{'levelTypeHash'}->{$helper->{VARS}->{GRANULARITY}};
       };

    $helper->{DATA}->{'dateType'} = sub { 
           return $helper->{DATA}->{'dateTypeHash'}->{$helper->{VARS}->{ACTION_TYPE}};
       };

  </exec>

  <state name="START" title="Welcome to the Assignment Parameter Helper">
    <message nextstate="CHOOSE_LEVEL">
        <p>This wizard will allow you to <b>set open, due, and 
           answer dates for problems</b>. You will be asked to 
           select a problem, what kind of date you want to set, 
           and for whom the date should be effective.</p>

        <p>After the wizard is done, you will be shown where in
           the advanced interface you would have gone to change
           the parameter you have chosen, so in the future you
           can do it directly.</p>

        <p>Press <b>Next -&gt;</b> to begin, or select <b>&lt;- 
           Previous</b> to go back to the previous screen.</p>
      </message>    
    </state>

  <state name="CHOOSE_LEVEL" title="Which Problem or Problems?">
    <message>Which problems do you wish to change a date for?</message>
    <choices variable="GRANULARITY">
      <choice computer="whole_course" nextstate="CHOOSE_ACTION">
        <b>Every problem</b> in the course
        </choice>
      <choice computer="map" nextstate="CHOOSE_FOLDER">
        Every problem in a particular <b>folder</b>
        </choice>
      <choice computer="resource" nextstate="CHOOSE_RESOURCE">
        One particular <b>problem</b>
        </choice>
      </choices>
    </state>

  <state name="CHOOSE_FOLDER" title="Select Folder">
    <message>Select the folder you wish to set the date for:</message>

    <resource variable="RESOURCE_ID">
      <nextstate>CHOOSE_ACTION</nextstate>
      <filterfunc>return $res->is_map()</filterfunc>
      <valuefunc>return $res->map_pc();</valuefunc>
      </resource>
    </state>

  <state name="CHOOSE_RESOURCE" title="Select Problem">
    <message>Select the problem you wish to change the date for:</message>

    <resource variable="RESOURCE_ID" nextstate="CHOOSE_ACTION">
      <nextstate>CHOOSE_ACTION</nextstate>
      <filterfunc>return $res->is_map || $res->is_problem()</filterfunc>
      <choicefunc>return $res->is_problem()</choicefunc>
      </resource>
    </state>

  <state name="CHOOSE_ACTION" title="Parameter Type">
    <eval>return 'What parameters do you want to set for ' . 
      &{$helper->{DATA}->{'levelType'}}()
      . '?';
      </eval>
    <choices variable="ACTION_TYPE">
      <nextstate>CHOOSE_DATE</nextstate>
      <choice computer="open_date">Set an <b>open date</b></choice>
      <choice computer="due_date">Set a <b>due date</b></choice>
      <choice computer="answer_date">Set an <b>answer open date</b></choice>
      </choices>
    </state>

  <state name="CHOOSE_DATE" title="Set Date">
    <eval>
      return 'What should the ' .
       &{$helper->{DATA}->{'dateType'}}() .
       ' be set to? <br /><br />';
      </eval>
    <date variable="PARM_DATE" hoursminutes='1'>
      <nextstate>CHOOSE_STUDENT_LEVEL</nextstate>
      </date>
    </state>

  <state name="CHOOSE_STUDENT_LEVEL" title="Students Affected">
    <eval>
      return 'Set ' . 
       &{$helper->{DATA}->{'dateType'}}() .
        ' of ' .
       &{$helper->{DATA}->{'levelType'}}() .
        ' for. . .';
      </eval>
    <choices variable="TARGETS">
      <choice computer="course" nextstate="FINISH">
         . . . for <b>all students</b> in the course</choice>
      <choice computer="section" nextstate="CHOOSE_SECTION">
         . . . for a particular <b>section</b></choice>
      <choice computer="student" nextstate="CHOOSE_STUDENT">
         . . . for an individual <b>student</b></choice>
      </choices>
    </state>

  <state name="CHOOSE_SECTION" title="Select Section">
    <eval>
      return 'Please select the section you wish to set the ' .
       &{$helper->{DATA}->{'dateType'}}() .
         ' for:<br />';</eval>
    <section variable="SECTION_NAME" nextstate="FINISH" />
    </state>

  <state name="CHOOSE_STUDENT" title="Select Student">
    <eval>
      return 'Please select the student you wish to set the ' .
       &{$helper->{DATA}->{'dateType'}}() .
         ' for:<br />';</eval>
    <student variable="USER_NAME" nextstate="FINISH" />
    </state>

  <state name="FINISH" title="Verify Selection">
    <parmwizfinal />
    </state>

  </helper>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>