KORPPI-projekti

 

 

 

 

Minna Lesonen

Hannu Pekkanen

Tuukka Tawast

Heikki Uuksulainen

 

 

 

 

 

 

JSP- käsikirja 4.6.2001

 

 

 

 

 

 

 

 

 

Jyväskylän yliopisto

tietotekniikan laitos


Projektin tietoja

 

Tekijät:                                   Minna Lesonen                       (minles@st.jyu.fi)

                                                            Hannu Pekkanen                     (krimu@st.jyu.fi)

                                                            Tuukka Tawast             (tutawast@mit.jyu.fi)

                                                            Heikki Uuksulainen            (heuuksul@st.jyu.fi)

 

Työn nimi:            Korppi-projekti, JSP-lähdekoodikirja

 

Työ:                                        JSP-lähdekoodikäsikirja tietotekniikan cum laude -työprojektiin.

 

Tiivistelmä:            JSP-lähdekoodikäsikirja sisältää Korppi-järjestelmän lähdekoodit lukuunottamatta Java-papuja.

 

Avainsanat:            Käyttöliittymä, WWW, JSP, Java

 


Sisältö

1.       Johdanto   1

2.       Opiskelijan sivut.. 2

2.1          OpisKurssit.jsp. 2

2.2          pageOpisKurssit.code  4

2.3          pageDepCourse.code  6

2.4          OpisTentit   9

2.5          pageOpisTentit.code  10

2.6          courseInfo.jsp. 13

2.7          pageCourseInfo.code  15

2.8          courseInfoSave.jsp  19

2.9          pageCourseInfoSave.code. 21

2.10          Opry_ilmo.jsp. 22

2.11          pageOpry_ilmo.code  24

2.12          groupPlaces.jsp. 27

2.13          pageGroupPlaces.code  29

2.14          opisRegisterGroup.jsp  32

2.15          pageOpisRegisterGroup.code. 33

3       Opettajan sivut.. 35

3.1          ope_aloitus.jsp. 36

3.2          ope_aloitus.code. 38

3.3          ope_demopisteet.jsp  39

3.4          ope_demopisteet.code  41

3.5          ope_kurssilaiset.jsp  46

3.6           ope_kurssilaiset.code  48

3.7          ope_kurssit.jsp. 50

3.8           ope_kurssit.code. 53

3.12          ope_lisaa_kurssi.jsp  60

3.13          ope_lisaa_kurssi.code  61

3.14          ope_lisatiedot.jsp  66

3.15          ope_paivitys.jsp. 75

3.16          ope_paivitys.code  77

3.17          ope_raportit.jsp. 79

3.18          ope_raprtit.code. 81

3.19          ope_tallenna_kurssi.jsp. 83

3.20          ope_tallenna_paivitys.jsp. 90

3.21          ope_tallenna_paivitys.code. 92

3.22          ope_tentit.jsp. 96

3.23          ope_tentit.code. 98

4       Ylläpitäjän sivut.. 100

4.1      AdminUsers.jsp  100

4.2      pageAdminUsers.code. 101

4.3      lisaa_kurssi.jsp  102

4.4      lisaa_kurssi.code  104

5     Yleisiä sivuja.. 107

5.1           vasen_palkki.jsp. 107

5.2           yla_palkki_kuvat.code  109

5.3          yla_palkki.code. 110


1. Johdanto

JSP-tekniikassa (Java Server Pages) sovelluslogiikka pyritään erottelemaan varsinaisesta käyttöliittymästä, eli tässä tapauksessa WWW-sivuista ja sijoittamaan omiin erillisiin Java-papuihinsa. Käyttöliittymät voidaan toteuttaa itsenäisillä Java-ohjelmilla, Java-appletteina tai JSP-tyyppisillä selainkäyttöisillä sivuilla. Parhaan yhteensopivuuden saavuttamiseksi käytimme viimeksimainittua JSP-tekniikkaa. Käyttöliittymän hyödyntämät Java-pavut on dokumentoitu erillään omassa dokumentissaan, joten tässä dokumentissa esitellään vain JSP-sivujen lähdekoodit. Järjestelmän JSP-sivut on kommentoitu käyttäen projektisuunnitelmassa esitettyä mallia.

Luvussa 2 on listattuna opiskelijan käyttöliittymän sivujen lähdekoodit ja luvussa 3 opettajan sivujen koodit. Luku 4 listaa ylläpitäjän sivujen koodit ja luku 5 yleiset kaikilla sivuilla käytettyjen sivujen lähdekoodit.


 

2.Opiskelijan sivut

Opiskelijan on voitava ilmoittautua opettajien määrittelemille kursseille ja tentteihin. Lisäksi on pystyttävä katselemaan tuloksia kurssilta ja antamaan luennoitsijalle hänen pyytämiään tietoja. Tmä luku sisältää opiskelijan käyttöliittymän sivujen lähdekoodit.

 

1.1                                2.1                      OpisKurssit.jsp

 

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*,

java.io.*, javax.servlet.*" session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

<jsp:useBean id="tools"                         scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                            scope="session"         class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"                    scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"                      scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                          scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                         scope="session"         class="kotkabeans.Error" />

<jsp:useBean id="person"                        scope="session"         class="kotkabeans.Person" />

<jsp:useBean id="usemodule"                     scope="application"     class="kotkabeans.UseModule" />

<jsp:useBean id="AddUserToCourse"               scope="application"     class="kotkabeans.AddUserToCourse"/>

 

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*               NAME:           opisKurssit.jsp

*               LANGUAGE:       jsp

*               DATE:           10.4.02

*               AUTHOR:         Heikki Uuksulainen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*               UPDATES

****************************************************************************************************

*

*

*

****************************************************************************************************/

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/opisKurssit.jsp");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  ResultSet myTemp2Result;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

%>

 

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title> 

 

<link href="kotka2.css" rel="stylesheet" type="text/css" />

 

</head>

 

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="pageOpisKurssit.code" %>

</div>

 

</body>

 

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

 }

%>

 

1.2                                2.2                      pageOpisKurssit.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*

*      NAME:     pageOpisKurssit.code

*      LANGUAGE: JSP

*      DATE:     7.3.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

%>

 

<%

     String selectedValue=request.getParameter("course");

        String selectedCourseName="";

     String homeOrg="";

     String selectedDep="";

     String paramDep="";

     String department="";

     String departmentID="";

     String uri="";

     int items = 0;

 %>

 

<%

                                //hakee kurssit, jolle henkilö on ilmoittautunut opiskelijana

  myResult = db.executeQuery("SELECT name,code,uri FROM coursetranslation,course,courseinstance WHERE course.deleted='f' AND languageid="+languageID+" AND coursetranslation.courseid=course.courseid AND course.courseid=courseinstance.courseid AND courseinstance.deleted='f' AND courseinstance.courseinstanceid=courseparticipant.courseinstanceid AND courseparticipant.personid="+personID+" AND courseparticipant.deleted='f' AND courseparticipant.usergroupid=1 ORDER BY code;");

 

%>

  

<h3>Kurssit, joille olet ilmoittautunut:</h3>

 

<% while(myResult.next()) {

     items++;

     uri = "";

     if(!myResult.getString("uri").equals("")) {

          uri = myResult.getString("uri");

     }

 

     if(!uri.equals("")){

%>

                <a target="new" href="<%= uri %>"><%= myResult.getString("code") %> <%= myResult.getString("name") %>  </a> <br />

<%   } else { %>

          <%= myResult.getString("code") %> <%= myResult.getString("name") %> <br />

<%

     }

  }

  if(items == 0) {

%>

     <p>(Ei yhtään kurssia)</p>

<%} %>

  

 

<h3>Kursseille ilmoittautuminen:</h3>

 

<form action="./opisKurssit.jsp">

 

     <%@ include file="pageDepCourse.code" %>

     

</form>

 

<%

        if(usemodule.courseRight(personID,Integer.parseInt(selectedValue)) == 2) {

%>

        <h3>Sinulla on tuntiopettajan oikeudet kyseiselle kurssille! Alla olevalla linkillä pääset demopisteiden antoon</h3>

       

        <a href="ope_demopisteet.jsp?kurssit=<%= selectedValue %>">Demopisteet</a>

<%

        } else {

%>

 

 

<%      // lets' check if user has registered to chosen course

 

        String personid=String.valueOf(personID);

        if(!AddUserToCourse.checkUser(personid,selectedValue,false))   

          if(selectedValue.compareTo("0") != 0) {

%>

               <div class="keskelle">

               <form action="./opisRegister.jsp">    

                  <input type="submit" name="button" value="Ilmoittaudu"> <br />

                <input type="hidden" name="course" value="<%= selectedValue %>">       

               <input type="hidden" name="department" value="<%= selectedDep %>">

               </form>

               </div>

 <%

               }

          else {}

        else {

 %>

 

<form action="./opisRegister.jsp">

        <input type="submit" name="button" value="poista ilmoittautuminen"> <br />

     <input type="hidden" name="course" value="<%= selectedValue %>">

     <input type="hidden" name="department" value="<%= selectedDep %>">

</form>

 

<form action="./courseInfo.jsp">

        <input type="submit" value="tietosi kurssilta"> <br />

        <input type="hidden" name="course" value="<%= selectedValue %>"> 

        <input type="hidden" name="department" value="<%= selectedDep %>">

</form>

 

<form action="opry_ilmo.jsp">

        <input type="submit" value="opetusryhmiin ilmoittautuminen"> <br />

     <input type="hidden" name="course" value="<%= selectedValue %>">

     <input type="hidden" name="department" value="<%= selectedDep %>">

</form>

<%

        }

 

     }

%>

 

1.3                                2.3                      pageDepCourse.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

<%

******************************************************************************

*

*      NAME:     pageDepCourse.code

*      LANGUAGE: JSP

*      DATE:     18.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

%>

 

        <!-- Hakee kaikki laitokset -->

<%      myResult = db.executeQuery("SELECT DISTINCT name,organisationid FROM organisationtranslation WHERE languageid = "+languageID+" AND organisationtranslation.organisationid=organisation.organisationid AND organisation.organisationtypeid=3 AND deleted='f';"); %>

 

        <h4>Valitse laitos:</h4>

        <select name="department">

        <%      if(request.getParameter("department") == null || request.getParameter("department").equals("0")) {

                        homeOrg = "----Kaikki----";

                        selectedDep = "0";

        %>

                                <option value="<%= selectedDep %>" selected="selected"><%= homeOrg %></option>

               

        <%

                } else {                // Hakee parametrina tuodun organisaation

                        myTemp2Result = db.executeQuery("SELECT name, organisationid FROM organisationtranslation WHERE languageid="+languageID+" AND organisationid="+request.getParameter("department")+";");

                        if(myTemp2Result.next() ) {

                                homeOrg = myTemp2Result.getString("name");

                                selectedDep = myTemp2Result.getString("organisationid");

        %>

                                <option value="<%= selectedDep %>" selected="selected"><%= homeOrg %></option>

        <%              }

                }

        %>

               

        <%      while(myResult.next()) {

                        department = myResult.getString("name");

                        departmentID = myResult.getString("organisationid");

                        if(department.equals(homeOrg)) continue;

        %>

                        <option value="<%= departmentID %>"><%= department %></option>

 

        <%      }       %>

       

        </select>

        <input type="submit" value="OK" />

<%

        if(request.getParameter("department") == null || request.getParameter("department").equals("0")) {  //Hakee kaikkien laitosten kurssit

                myResult = db.executeQuery("SELECT DISTINCT name,courseinstance.courseinstanceid,code,date(startdate) FROM course,coursetranslation,courseinstance WHERE coursetranslation.courseid=course.courseid AND courseinstance.courseid=course.courseid AND courseinstance.deleted='false' AND coursetranslation.deleted='f' AND languageid = "+languageID+" ORDER BY code;");

                       

         } else {       // Hakee parametrina tuodun laitoksen kurssit

 

                myResult = db.executeQuery(" SELECT DISTINCT name,courseinstance.courseinstanceid,code,date(startdate) FROM course,coursetranslation,courseinstance WHERE courseinstance.deleted='f' AND coursetranslation.deleted='f' AND languageid = "+languageID+" AND coursetranslation.courseid=course.courseid AND courseinstance.courseid=course.courseid AND course.organisationid="+request.getParameter("department")+" ORDER BY code;");

        }

%>

               

        <h4>Valitse kurssi:</h4>

        <select name="course">

<%      if((selectedValue == null) || (selectedValue.equals("0"))) {

                selectedCourseName = "---Valitse Kurssi---";

                selectedValue = "0";

        }

        else {  // hakee parametrina tuodun kurssin oletukseksi, jos se on parametrina tuodun laitoksen kurssi, jos laitos tuodaan parametrina!

                if(request.getParameter("department").equals("0")) {

                        myTempResult = db.executeQuery("SELECT organisationid FROM course WHERE courseinstance.deleted='f' AND courseinstance.courseinstanceid="+selectedValue+" AND courseinstance.courseid=course.courseid;");

                        if(myTempResult.next()) { paramDep = myTempResult.getString("organisationid"); }

                }

                else { paramDep = request.getParameter("department"); }

                myTemp2Result = db.executeQuery("SELECT DISTINCT name,courseinstance.courseinstanceid,code,date(startdate) FROM course,coursetranslation,courseinstance WHERE coursetranslation.courseid=course.courseid AND course.courseid=courseinstance.courseid AND courseinstance.deleted='f' AND courseinstance.courseinstanceid="+selectedValue+" AND course.organisationid="+paramDep+" AND coursetranslation.languageid="+languageID+";");

                if( myTemp2Result.next() ) {

                        String name = myTemp2Result.getString("name");

                        selectedValue = myTemp2Result.getString("courseinstanceid");

                        String code = myTemp2Result.getString("code");

                        String date = myTemp2Result.getString("date");

                        selectedCourseName = code +" "+ name +" "+ date;

                } else {

                        selectedValue="0";

                        selectedCourseName="---Valitse kurssi---";

                }

          }

%>

        <option value="<%= selectedValue %>" selected="selected"><%= selectedCourseName %></option>

               

<%      while(myResult.next()) {

                String courseid = myResult.getString("courseinstanceid");

                if(courseid.equals(selectedValue)) continue;

                String code = myResult.getString("code");

                String date = myResult.getString("date");

                String name = myResult.getString("name");

                String option = code +" "+ name +" "+ date;

%>

                <option value="<%= courseid %>"><%= option %></option>

               

<%

        }

%>

        </select>

        <input type="submit" value="OK" />

 

 

1.4                                2.4                      OpisTentit

<%@ page language="Java" import="kotkabeans.*,java.util.*,java.sql.*" session="true" autoFlush="true" isThreadSafe="true" isErrorPage="false"

errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"      scope="application" class="kotkabeans.Tools"/>  

<jsp:useBean id="db"         scope="session"     class="kotkabeans.DB"/>

<jsp:useBean id="autoNumber" scope="application" class="kotkabeans.AutoNumber"/>

<jsp:useBean id="localize"   scope="application" class="kotkabeans.Localize"/>

<jsp:useBean id="mail"       scope="application" class="kotkabeans.Mail"/>

<jsp:useBean id="error"      scope="session"     class="kotkabeans.Error"/>  

<jsp:useBean id="person"     scope="session"     class="kotkabeans.Person"/>

<jsp:useBean id="usemodule"  scope="application" class="kotkabeans.UseModule"/>

       

<%

/*****************************************************************************

*                             PAGE DESCRIPTION

******************************************************************************

*

*      NAME:     opisTentiti.jsp

*      LANGUAGE: JSP

*      DATE:     27.2.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 27.2.2000

*   - First prototype

*

*****************************************************************************/

 

        User user = (User)session.getValue("user");

        if(user == null) {

                response.sendRedirect("../portal/showLogin.jsp?return=../course/opisTentit.jsp");

        }

        else {

          user.setCurrentForm(request.getServletPath());

          user.setCurrentStatus("POST");

          user.setOpStartTime();

                // person parameters (read from user bean)

                int personID=user.getPersonID();

                int homeOrganisationID=user.getOrganisationID(); // 1 = JYU

                int languageID=user.getLanguageID(); // 1 = English, 2 = Finnish

                int accessGroup=1;

 

                ResultSet myResult; // SQL query result

                ResultSet myTempResult;

          ResultSet myTemp2Result;

                int updateFailure = 0;

                int allowContinue = 1;

 

                // connect to database

                db.connect();

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">

 

<head>

<link rel="StyleSheet" href="kotka2.css" type="text/css" media="screen" title="Kotka stylesheet" />

<title>Kotka</title>

</head>

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="pageOpisTentit.code" %>

</div>

 

</body>

</html>

 

<%

     user.setOpEndTime();

     user.setCurrentStatus("IDLE");

     db.disconnect();

     }

%>

 

1.5                                2.5                      pageOpisTentit.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*

*      NAME:     pageOpisTentit.code

*      LANGUAGE: JSP

*      DATE:     4.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

        String homeOrg="";

        String selectedDep="";

     int items = 0;

 

%>

<%        // lets fetch all examination that user has registered to     

     myTempResult = db.executeQuery("SELECT DISTINCT begintime,space.code AS scode,coursetranslation.name,course.code AS ccode,eventgroup.eventgroupid FROM groupparticipant,eventgroup,course,space,coursetranslation,event WHERE spaceid=eventspace.spaceid AND eventspace.eventid=event.eventid AND event.eventgroupid=eventgroup.eventgroupid AND groupparticipant.deleted='f' AND groupparticipant.personid="+personID+" AND groupparticipant.eventgroupid=eventgroup.eventgroupid AND eventgroup.grouptypeid=3 AND eventgroup.courseinstanceid=courseinstance.courseinstanceid AND courseinstance.courseid=course.courseid AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+" ORDER BY ccode;");

 

    

%>

 

<h3>Tentit, joille olet ilmoittautunut:</h3>

<%

     while(myTempResult.next()) {

          items++;

                String code = myTempResult.getString("ccode");

                String name = myTempResult.getString("name");

                String space = myTempResult.getString("scode");

                String time = myTempResult.getString("begintime");

                String option = code +" "+ name +" "+ space +" "+ time;

%>

          <%= option %> <br />

<%   } 

     if(items == 0) {

%>

          (Ei yhtään tenttiä)

<%   } %>

 

 

<h3>Tenttituloksesi:</h3>

 

<p>(Ei tuloksia)</p>

 

<%   // all departments

     myResult = db.executeQuery("SELECT DISTINCT name,organisationid FROM organisationtranslation WHERE languageid = "+languageID+" AND organisationtranslation.organisationid=organisation.organisationid AND organisation.organisationtypeid=3 AND deleted='f';"); %>

 

<form action="opisTentit.jsp">       

     <h3>Tentteihin ilmoittautuminen:</h3>

        <h4>Valitse laitos:</h4> 

        <select name="department">

        <%      if(request.getParameter("department") == null || request.getParameter("department").equals("0")) {

                       homeOrg = "----Kaikki----";

                       selectedDep = "0";

        %>

                                <option value="<%= selectedDep %>" selected="selected"><%= homeOrg %></option>

       

        <%             

                } else {                // fetch department that is set to url

                        myTemp2Result = db.executeQuery("SELECT name,organisationid FROM organisationtranslation WHERE languageid="+languageID+" AND organisationid="+request.getParameter("department")+";");                        if(myTemp2Result.next() ) {

                                homeOrg = myTemp2Result.getString("name");

                                selectedDep = myTemp2Result.getString("organisationid");

        %>

                                <option value="<%= selectedDep %>" selected="selected"><%= homeOrg %></option>

        <%              }

                }

        %>

 

        <%      while(myResult.next()) {

                        String department = myResult.getString("name");

                        String departmentID = myResult.getString("organisationid");

                        if(department.equals(homeOrg)) continue;

        %>

                        <option value="<%= myResult.getString("organisationid")  %>"><%= myResult.getString("name") %></option>

 

        <%      }       %>

 

        </select>

        <input type="submit" value="OK" />

</form>

 

<%                                                                              // fetch information from ALL examinations

     if(request.getParameter("department")==null || request.getParameter("department").equals("0")) {

                          myTempResult = db.executeQuery("SELECT DISTINCT begintime,space.code AS scode,coursetranslation.name,course.code AS ccode,eventgroup.eventgroupid FROM eventgroup,course,space,coursetranslation,event WHERE spaceid=eventspace.spaceid AND eventspace.eventid=event.eventid AND event.eventgroupid=eventgroup.eventgroupid AND eventgroup.deleted='f' AND eventgroup.grouptypeid=3 AND eventgroup.courseinstanceid=courseinstance.courseinstanceid AND courseinstance.courseid = course.courseid AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+" ORDER BY ccode;");

 

     }

     else {  // information from examinations that belongs to department that is set to url

          myTempResult = db.executeQuery("SELECT DISTINCT begintime,space.code AS scode,coursetranslation.name,course.code AS ccode,eventgroup.eventgroupid FROM eventgroup,course,space,coursetranslation,event WHERE spaceid=eventspace.spaceid AND eventspace.eventid=event.eventid AND event.eventgroupid=eventgroup.eventgroupid AND eventgroup.deleted='f' AND eventgroup.grouptypeid=3 AND eventgroup.courseinstanceid=courseinstance.courseinstanceid AND courseinstance.courseid = course.courseid AND course.organisationid="+selectedDep+" AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+" ORDER BY ccode;");

     }

 

                String groupid = "";

                String code = "";

                String name = ""; 

                String space = "";  

                String time = "";

          String option="";

%>

 

<form action="opisRegisterGroup.jsp" method="post">

     <h4>Valitse tentti: </h4>

        <select name="examination" size="6" >

<%     while(myTempResult.next()) { 

          groupid = myTempResult.getString("eventgroupid");

          code = myTempResult.getString("ccode");

          name = myTempResult.getString("name");

          space = myTempResult.getString("scode");

          time = myTempResult.getString("begintime");

          option = code +" "+ name +" "+ space +" "+ time;

%>

          <option value="<%= groupid %>"><%= option %></option>

<%   } %>

        </select>

 

        <h4>Viesti tentaattorille:</h4>

        <textarea name="info" rows="3" cols="30"> </textarea> <br />

       

        <input type="submit" name="button" value="Ilmoittaudu" />

     <input type="submit" name="button" value="Poista ilmoittautuminen" />

     <input type="hidden" name="department" value="<%= selectedDep %>" />

    

        <input type="reset" value="Tyhjennä" />

</form>

               

 

1.6                                2.6                      courseInfo.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*,java.io.*, javax.servlet.*" session="true"  autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

<jsp:useBean id="tools"                         scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                            scope="session"         class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"                    scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"                      scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                          scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                         scope="session"         class="kotkabeans.Error" />

<jsp:useBean id="person"                        scope="session"         class="kotkabeans.Person" />

<jsp:useBean id="usemodule"                     scope="application"     class="kotkabeans.UseModule" />

<jsp:useBean id="AddUserToCourse"               scope="application"     class="kotkabeans.AddUserToCourse"/>

<jsp:useBean id="save"                scope="application"     class="kotkabeans.SaveInfo"/>

 

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*               NAME:           courseInfo.jsp

*               LANGUAGE:       jsp

*               DATE:           23.4.02

*               AUTHOR:         Heikki Uuksulainen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*               UPDATES

****************************************************************************************************

*

*

*

****************************************************************************************************/

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/opisKurssit.jsp");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  ResultSet myTemp2Result;

  ResultSet myTemp3Result;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title>

 

<link href="kotka2.css" rel="stylesheet" type="text/css" />

 

</head>

 

 

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="pageCourseInfo.code" %>

</div>

 

</body>

 

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

 }

%>

1.7                                2.7                      pageCourseInfo.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*

*      NAME:     pageCourseInfo.code

*      LANGUAGE: JSP

*      DATE:     9.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

 

     ResultSet myTemp4Result;

     ResultSet myTemp5Result;

     int items = 0;

     String department=request.getParameter("department");

     String courseID = request.getParameter("course");

     if(courseID == null) courseID = "0";

                                        // information from given course

     myResult = db.executeQuery("SELECT course.code, coursetranslation.name FROM course, coursetranslation WHERE courseinstance.courseinstanceid="+courseID+" AND courseinstance.courseid=course.courseid AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+";");

     if(myResult.next()) {

%>

     <h4>Tietosi kurssilta</h4> <h3><%= myResult.getString("code") %><%= myResult.getString("name") %></h3>

<%   }

 

//------------------------------------------------- Lets check if there is all fields in table Result --------------------------------

 

                                             // fieldgroups that are defined to course

     myResult = db.executeQuery("SELECT fieldgrouplang.name, fieldgroup.fieldgroupid, fieldgroupprotection.accesstype FROM fieldgroup, fieldgroupprotection, fieldgrouplang WHERE fieldgroup.deleted='f' AND fieldgrouplang.deleted='f' AND fieldgroup.courseinstanceid="+courseID+" AND fieldgrouplang.languageID="+languageID+" AND fieldgrouplang.fieldgroupid=fieldgroup.fieldgroupid AND fieldgroup.fieldgroupid=fieldgroupprotection.fieldgroupid AND fieldgroupprotection.deleted='f' AND fieldgroupprotection.usergroupid=usergroup.usergroupid AND usergroup.usergroupid=courseparticipant.usergroupid AND courseparticipant.personid="+personID+" AND courseparticipant.courseinstanceid="+courseID+";");;

 

     while(myResult.next()) {

          String group = myResult.getString("fieldgroupid");

%>

          <h4><%= myResult.getString("name") %> </h4>

<%  

          myTemp5Result = db.executeQuery("SELECT fieldid, defaultvalue FROM field WHERE deleted='f' AND fieldgroupid="+group+";");

          while(myTemp5Result.next()) {

               myTemp4Result = db.executeQuery("SELECT * FROM result WHERE deleted='f' AND fieldid='"+myTemp5Result.getString("fieldid")+"';");

               if(!myTemp4Result.next()) {

                    db.executeUpdate("INSERT INTO result VALUES(false,"+personID+","+personID+",'"+myTemp5Result.getString("fieldid")+"','now','"+myTemp5Result.getString("defaultvalue")+"');");

               }

          }

 

 

//----------------------------- Print fields to the screen  ------------------------------------------------------------

 

                myTempResult = db.executeQuery("SELECT field.defaultvalue, field.fieldtypeid, field.fieldid, fieldtranslation.name, result.value FROM fieldtranslation, field, result WHERE field.fieldgroupid="+group+" AND fieldtranslation.fieldid=field.fieldid AND fieldtranslation.languageid="+languageID+" AND result.fieldid=field.fieldid AND result.personid="+personID+" ORDER BY ordernum;");

         

          if(Integer.parseInt(myResult.getString("accesstype")) == 1) {      //if student may not change fields

%>

               <form>

                    <table>

<%

                    while(myTempResult.next()) {

                         items++;

%>  

                         <tr><td><%= myTempResult.getString("name") %></td><td> <b><%= myTempResult.getString("value") %></b></td></tr>

 

<%                  }  %>

                    </table>

               </form>

<%

          }

          else {         // student may change fields

%>

               <form action="./courseInfoSave.jsp" method="post">

                    <table>

<%

                    while(myTempResult.next()) {

                         String fieldid = myTempResult.getString("fieldid");

 

                         switch(Integer.parseInt(myTempResult.getString("fieldtypeid"))) {

                              case 1:

%>  

                                   <tr><td><%= myTempResult.getString("name") %></td><td><input type="text" name="text" value="<%= myTempResult.getString("value") %>"/></td></tr>   

                                        <input type="hidden" name="textFieldID" value="<%= myTempResult.getString("fieldid") %>">

<%                      

                                   break;

                              case 3:        // THIS HAVE NOT BEEN TESTED!!!!!!!!!!!!!!!!!!!!

%>

                                   <%= myTempResult.getString("name") %>

<%

                         myTemp3Result = db.executeQuery("SELECT name FROM choicetranslation WHERE choiceid="+myTempResult.getString("value")+";");

 

                         String selectedChoice = myTempResult.getString("defaultvalue");

 

                         if(myTemp3Result.next()) selectedChoice = myTemp3Result.getString("name");

 

                                        myTemp2Result = db.executeQuery("SELECT name, choice.choiceid FROM choicetranslation,choice WHERE field.deleted='f' AND field.fieldid="+fieldid+" AND fieldchoice.fieldid=field.fieldid AND fieldchoice.choiceid=choice.choiceid AND choicetranslation.choiceid=choice.choiceid AND choicetranslation.languageid="+languageID+";");

%>

                                   <select name="select">

                                             <option selected="selected" name="<%= myTemp3Result.getString("name") %>" value="<%= myTempResult.getString("value") %>">

<%  

                                        while(myTemp2Result.next()) {

                                             if(myTemp2Result.getString("choiceid").equals(myTempResult.getString("value"))) continue;

%>  

                                             <option value="<%= myTemp2Result.getString("choiceid") %>"><%= myTemp2Result.getString("name") %></option>

<%                                      }

%>

                                   </select><br />

 

<%                                 break;

                              case 2:

%>

                                   <%= myTempResult.getString("name") %>

<%

                                   if(myTempResult.getString("value").equals("0")) {

%>

                                   <input type="checkbox" value="<%= myTempResult.getString("fieldid") %>" name="check"/><br />

<%       

                                   }

                                   else {

%>

                                                        <input type="checkbox" checked="checked" value="<%= myTempResult.getString("fieldid") %>" name="check"/><br />

<%

                                   }

                                   break;

                              case 4:

%>

                                   <%= myTempResult.getString("name") %>

<%

                                   if(myTempResult.getString("value").equals("0")) {

%>

                                   <input type="radio" value="<%= myTempResult.getString("fieldid") %>" name="radio"/><br />

<%

                                   }

                                   else {

%>

                                   <input type="radio" value="<%= myTempResult.getString("fieldid") %>" checked="checked" name="radio"/><br />

<%

                                   }

                                   break;

                              default:

%>

                                   Kentän tyyppi väärä!

<%

                                  

                         }

                    }

%>

               </table>

               <input type="submit" value="Tallenna"/>

               <input type="reset" value="Tyhjennä"/>

               <input type="hidden" name="course" value="<%= courseID %>">

               <input type="hidden" name="department" value="<%= department %>">

               <input type="hidden" name="fieldgroup" value="<%= myResult.getString("fieldgroupid") %>">

               </form>

<%

          }

     }

%>

 

<a href="opisKurssit.jsp?course=<%= courseID %>&department=<%= department %>">Takaisin</a>

 

 

<!--

<form action="opisKurssit.jsp">

     <input type="submit" value="Takaisin">

     <input type="hidden" name="course" value="<%= courseID %>">

     <input type="hidden" name="department" value="<%= department %>">

</form>

-->

 

1.8                                2.8                      courseInfoSave.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*,java.io.*, javax.servlet.*" session="true"  autoFlush="true" isThreadSafe="true" isErrorPage="false"

errorPage="../shared/showError.jsp" %>

<jsp:useBean id="tools"                         scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                            scope="session"         class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"                    scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"                      scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                          scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                         scope="session"         class="kotkabeans.Error" />

<jsp:useBean id="person"                        scope="session"         class="kotkabeans.Person" />  

<jsp:useBean id="usemodule"                     scope="application"     class="kotkabeans.UseModule" />

<jsp:useBean id="AddUserToCourse"               scope="application"     class="kotkabeans.AddUserToCourse"/>

<jsp:useBean id="save"                          scope="application"     class="kotkabeans.SaveInfo"/>

 

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*              

*               NAME:           courseInfo.jsp

*               LANGUAGE:       jsp

*               DATE:           23.4.02

*               AUTHOR:         Heikki Uuksulainen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*               UPDATES

****************************************************************************************************

*

*

*

****************************************************************************************************/

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/opisKurssit.jsp");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  ResultSet myTemp2Result;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title> 

 

<link href="kotka2.css" rel="stylesheet" type="text/css" />

 

</head>

 

 

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">  

 <%@ include file="pageCourseInfoSave.code" %>

</div>

 

</body>

 

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

 }

%>

 

 

 

1.9                                2.9                      pageCourseInfoSave.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*

*      NAME:     pageCourseInfoSave.code

*      LANGUAGE: JSP

*      DATE:     24.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

    

     int i = 0;

     String course = request.getParameter("course");

     if(course == null) course = "";

     String department = request.getParameter("department");

     if(department == null) department = "";

     String fieldgroupID = request.getParameter("fieldgroup");

     if(fieldgroupID == null) fieldgroupID = "";

     String[] parameter = new String[100];

        String[] textFieldID = new String[100];

     int length;

     boolean text = true, radio = true, check = true;

 

 

     // lets check if there is textfields

     parameter = request.getParameterValues("text");

     if(parameter != null) {

          textFieldID = request.getParameterValues("textFieldID");

          if(!save.saveText(parameter, textFieldID)) {

               text = false;

          }

     }

 

     // lets check if there is checkboxes. By default we set them not checked

     i = 0;

 

        parameter = request.getParameterValues("check");

     if(!save.saveCheck(fieldgroupID, parameter)) {

          check = false;

     }

 

     //lets check if there is radiogroup

 

     String radioID = request.getParameter("radio");

     if( radioID != null) {                        // set given fieldid's value=1

          if(!save.saveRadio(fieldgroupID, radioID)) {

               radio = false;

          }

     }

 

     if(text && check && radio) {

%>

          <h4>Tiedot tallennettu!</h4>

<%

     } else {

%>

          <h4>Tietojen tallentamisessa ongelmia!!<h4>

          <h4>Ota yhteys ylläpitäjään!!</h4>

<%

     }

%>

 

<a href="courseInfo.jsp?course=<%= course %>&department=<%= department %>">Takaisin</a>

 

 

<!--

     <form action="courseInfo.jsp">

          <input type="submit" value="Takaisin">

          <input type="hidden" name="course" value="<%= course %>">

          <input type="hidden" name="department" value="<%= department %>">

     </form>

-->

 

1.10                            2.10                      Opry_ilmo.jsp

<%@ page language="Java" import="kotkabeans.*,java.util.*,java.sql.*" session="true" autoFlush="true" isThreadSafe="true" isErrorPage="false"

errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"      scope="application" class="kotkabeans.Tools"/>

<jsp:useBean id="db"         scope="session"     class="kotkabeans.DB"/>

<jsp:useBean id="autoNumber" scope="application" class="kotkabeans.AutoNumber"/>

<jsp:useBean id="localize"   scope="application" class="kotkabeans.Localize"/>

<jsp:useBean id="mail"       scope="application" class="kotkabeans.Mail"/>

<jsp:useBean id="error"      scope="session"     class="kotkabeans.Error"/>

<jsp:useBean id="person"     scope="session"     class="kotkabeans.Person"/>

<jsp:useBean id="usemodule"  scope="application" class="kotkabeans.UseModule"/>

<jsp:useBean id="group"         scope="session"    class="kotkabeans.UserToGroup"/>

       

<%

/*****************************************************************************

*                             PAGE DESCRIPTION

****************************************************************************** 

*

*      NAME:     opry_ilmo.jsp

*      LANGUAGE: JSP

*      DATE:     27.2.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

               

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 27.2.2000

*   - First prototype

*

*****************************************************************************/

 

        User user = (User)session.getValue("user");

        if(user == null) {

                response.sendRedirect("../portal/showLogin.jsp?return=../course/opry_ilmo.jsp");

        }

        else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

                // person parameters (read from user bean)

                int personID=user.getPersonID();

                int homeOrganisationID=user.getOrganisationID(); // 1 = JYU

                int languageID=user.getLanguageID(); // 1 = English, 2 = Finnish

                int accessGroup=1;

 

                ResultSet myResult; // SQL query result

                ResultSet myTempResult;

          ResultSet myTemp2Result;

                int updateFailure = 0;  

                int allowContinue = 1;

 

                // connect to database

                db.connect();

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">

 

<head>

<link rel="StyleSheet" href="kotka2.css" type="text/css" media="screen" title="Kotka stylesheet" />

<title>Kotka</title>

</head>

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="pageOpry_ilmo.code" %>

</div>

 

</body>

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

     db.disconnect();

     }

%>

 

1.11                            2.11                      pageOpry_ilmo.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*        

*      NAME:     pageOpry_ilmo.code

*      LANGUAGE: JSP

*      DATE:     4.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*                         

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

%>

 

<%

        String selectedValue=request.getParameter("course");

        String selectedCourseName="";

        String selectedExGroup="";      //Exercise

     String GroupName = "";

        String selectedSuExGroup="";    //Supervised Excercise

     String department="";

     String selectedDep="";

     String departmentID="";

     String homeOrg="";

     String paramDep="";

     int exLkm = 0;

     int suExLkm = 0;

     int items = 0;

                         // lets fetch all groups that person has registered

      myResult = db.executeQuery("SELECT DISTINCT coursetranslation.name AS course, eventgroup.name AS group FROM courseparticipant, eventgroup WHERE groupparticipant.deleted='f' AND groupparticipant.personid="+personID+" AND groupparticipant.eventgroupid=eventgroup.eventgroupid AND eventgroup.grouptypeid NOT IN(3) AND eventgroup.courseinstanceid=courseinstance.courseinstanceid AND courseinstance.courseid=course.courseid AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+";");  

%>

<h3>Ryhmät, joihin olet ilmoittautunut:</h3>

<%

     while(myResult.next()) {

          items++;

%>

          <b>Kurssi:</b> <%= myResult.getString("course") %> <b>Ryhmä:</b> <%= myResult.getString("group") %><br />

<%   } 

     if(items == 0) {

%>

          <p>(Ei yhtään ryhmää)</p>

<%   }

%>       

 

<form action="./opry_ilmo.jsp">

     <h3>Opetusryhmiin ilmoittautuminen</h3>

 

<%@ include file="pageDepCourse.code" %>

 

</form>

       

               

<!--  DEMOT -->

 

 

<%             // first lets check if there is demonstrations to given course

     myTemp2Result = db.executeQuery("SELECT COUNT(eventgroupid) FROM eventgroup WHERE courseinstanceid="+selectedValue+" AND deleted='f' AND grouptypeid=1;");

 

     if(myTemp2Result.next()) {

          if(( exLkm = myTemp2Result.getInt("count")) > 0) {    // if there is, we must get their information from database

                  // fetch all demonstrationgroups to given course (grouptypeid=1)

                  myResult = db.executeQuery("SELECT DISTINCT eventgroupid,name FROM eventgroup WHERE courseinstanceid="+selectedValue+" AND deleted='f' AND grouptypeid=1;");

 

                  // fetch grouptypename (demo) to chosen language

                  myTempResult = db.executeQuery("SELECT name FROM grouptypetranslation WHERE grouptypeid=1 AND languageid="+languageID+";");

               

                  selectedExGroup = "";

%>

               

 

               <form action="./groupPlaces.jsp">

          

          <%      if(myTempResult.next()) { %>

          <h4><%= myTempResult.getString("name") %></h4>

          <%      } %>

                  <select name="group">

          <%     if(request.getParameter("exercise") == null || request.getParameter("exercise").equals("0")) { 

                    selectedExGroup = "0";

                    GroupName = "----Ei mikään----";

               } else {                            

                       myTemp2Result = db.executeQuery("SELECT eventgroupid,name FROM eventgroup WHERE courseinstanceid="+selectedValue+" AND deleted='f' AND grouptypeid=1 AND eventgroupid="+request.getParameter("exercise")+";");

                    if(myTemp2Result.next()) {

                         selectedExGroup = myTemp2Result.getString("eventgroupid");

                         GroupName = myTemp2Result.getString("name");

                    }

               }

%>

                          <option value="<%= selectedExGroup %>" selected="selected"><%= GroupName %></option>

          <%      while(myResult.next()) {   

                    String ExGroup = myResult.getString("eventgroupid");

                    if(ExGroup.equals(selectedExGroup)) continue;

%>

                          <option value="<%= ExGroup %>"><%= myResult.getString("name") %></option>

          <%      }   %>

                  </select>

 

                  <input type="submit" value="OK">

               <input type="hidden" name="course" value="<%= selectedValue %>">

               <input type="hidden" name="department" value="<%= selectedDep %>">

               <input type="hidden" name="type" value="exercise">

       

          </form>        

 

    

    

<%        }

     }

%>

 

 

<!-- OHJAUKSET -->

 

 

<%             // first lets check if there is supervised exercises to given course

        myTemp2Result = db.executeQuery("SELECT COUNT(eventgroupid) FROM eventgroup WHERE courseinstanceid="+selectedValue+" AND deleted='f' AND grouptypeid=2;");

 

     if(myTemp2Result.next()) {

          if(( suExLkm = myTemp2Result.getInt("count")) > 0) {         // if there is, we must get their information from database

                  //haetaan kurssiin liittyvät ohjaukset

                  myResult = db.executeQuery("SELECT eventgroupid,name FROM eventgroup WHERE courseinstanceid="+selectedValue+" AND deleted='f' AND grouptypeid=2;");

       

                  //haetaan opetusryhmän tyyppi (ohjaus) valitulla kielellä

                  myTempResult = db.executeQuery("SELECT name FROM grouptypetranslation WHERE grouptypeid=2 AND languageid="+languageID+";");

%>

 

 

               <form action="groupPlaces.jsp">

               

          <%      if(myTempResult.next()) { %>

          <h4><%= myTempResult.getString("name") %></h4>

          <%      } %>

                  <select name="group">

          <%      if(request.getParameter("suexercise") == null || request.getParameter("suexercise").equals("0")) {

                          selectedSuExGroup = "0";

                          GroupName = "----Ei mikään----";

                  } else {                                                

                          myTemp2Result = db.executeQuery("SELECT eventgroupid,name FROM eventgroup WHERE courseinstanceid="+selectedValue+" AND deleted='f' AND grouptypeid=2 AND eventgroupid="+request.getParameter("suexercise")+";");

                          if(myTemp2Result.next()) {

                                  selectedSuExGroup = myTemp2Result.getString("eventgroupid");

                                  GroupName = myTemp2Result.getString("name");

                          }

                  }

%>

                          <option value="<%= selectedSuExGroup %>" selected="selected"><%= GroupName %></option>

          <%      while(myResult.next()) {

                          String SuExGroup = myResult.getString("eventgroupid");

                          if(SuExGroup.equals(selectedSuExGroup)) continue;

%>

                          <option value="<%= SuExGroup %>"><%= myResult.getString("name") %></option>

          <%      }   %>  

                  </select>      

       

                  <input type="submit" value="OK">

                  <input type="hidden" name="course" value="<%= selectedValue %>"> 

                  <input type="hidden" name="department" value="<%= selectedDep %>">

               <input type="hidden" name="type" value="suexercise">

          </form>

<%

          }

     }

     if(suExLkm == 0 && exLkm == 0) {

%>

          <p>(Ei yhtään opetusryhmää)</p>

<%   }

%>

 

2.12groupPlaces.jsp

<%@ page language="Java" import="kotkabeans.*,java.util.*,java.sql.*" session="true" autoFlush="true" isThreadSafe="true" isErrorPage="false"

errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"      scope="application" class="kotkabeans.Tools"/>

<jsp:useBean id="db"         scope="session"     class="kotkabeans.DB"/>

<jsp:useBean id="autoNumber" scope="application" class="kotkabeans.AutoNumber"/>

<jsp:useBean id="localize"   scope="application" class="kotkabeans.Localize"/>

<jsp:useBean id="mail"       scope="application" class="kotkabeans.Mail"/>

<jsp:useBean id="error"      scope="session"     class="kotkabeans.Error"/>

<jsp:useBean id="person"     scope="session"     class="kotkabeans.Person"/>

<jsp:useBean id="usemodule"  scope="application" class="kotkabeans.UseModule"/>

<jsp:useBean id="adcourse"  scope="application" class="kotkabeans.AddUserToCourse"/>

<jsp:useBean id="adgroup"    scope="application" class="kotkabeans.UserToGroup"/>

 

 

<%

/*****************************************************************************

*                             PAGE DESCRIPTION

******************************************************************************

*

*      NAME:     opisRegister

*      LANGUAGE: JSP

*      DATE:     20.3.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 20.3.2000

*   - First prototype

*

*****************************************************************************/

 

 

        User user = (User)session.getValue("user");

        if(user == null) {

                response.sendRedirect("../portal/showLogin.jsp?return=../course/opry_ilmo.jsp");

        }

        else {

            user.setCurrentForm(request.getServletPath());

            user.setCurrentStatus("POST");

            user.setOpStartTime();

                // person parameters (read from user bean)

                int personID=user.getPersonID();

                int homeOrganisationID=user.getOrganisationID(); // 1 = JYU

                int languageID=user.getLanguageID(); // 1 = English, 2 = Finnish

                int accessGroup=1;

 

                ResultSet myResult; // SQL query result

                ResultSet myTempResult;

          ResultSet myTemp2Result;

                int updateFailure = 0;

                int allowContinue = 1;

 

                // connect to database

                db.connect();

%>

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">

<head>

<link rel="StyleSheet" href="kotka2.css" type="text/css" media="screen" title="Kotka stylesheet" />

<title>Kotka</title>

</head>

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="pageGroupPlaces.code" %>

</div>

 

</body>

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

        } 

%>

 

 

 

2.13pageGroupPlaces.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*

*      NAME:     pageGroupPlaces.code

*      LANGUAGE: JSP

*      DATE:     17.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

                

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

 

     int i=0;

     String groupID = request.getParameter("group");

     if(groupID == null) groupID = "0";

     String type = request.getParameter("type");

     if(type == null) type = "";

     String selectedDep = request.getParameter("department");

     String selectedValue = request.getParameter("course");

 

      if(type.equals("exercise")) type = "exercise";

     else type = "suexercise";

    

        if(groupID.compareTo("0") != 0) {

 

     myResult = db.executeQuery("SELECT begintime,endtime,code FROM event,space WHERE eventgroupid="+groupID+" AND event.deleted='f' AND eventspace.eventid=eventid AND eventspace.spaceid=space.spaceid;");

 

     myTempResult = db.executeQuery("SELECT name, maxparticipants FROM eventgroup WHERE eventgroupid="+groupID+";");

 

     myTemp2Result = db.executeQuery("SELECT code,name FROM course,coursetranslation WHERE coursetranslation.courseid=course.courseid AND course.courseid=courseinstance.courseid AND courseinstance.courseinstanceid=eventgroup.courseinstanceid AND languageid="+languageID+" AND eventgroup.eventgroupid="+groupID+";");

 

     if(myTemp2Result.next()) {

%>

          <h4>Kurssi: <%= myTemp2Result.getString("code") %> <%= myTemp2Result.getString("name") %></h4>

<%   }

 

     if(myTempResult.next()) {

%>

          <h4>Ryhmä: <%= myTempResult.getString("name") %> </h4>

<%   }

%>

     <table border="3">

        <tr><th></th><th>Paikka</th><th>Alkamisaika</th><th>Loppumisaika</th>

<%     while(myResult.next()) {

          i++;

%>

 

        <tr><td><%= i %>. tapaaminen</td><td><%= myResult.getString("code") %></td><td><%= myResult.getString("begintime") %></td><td><%= myResult.getString("endtime") %></td></tr>

 

<%   }

%>

     </table>

 

<h4>Ilmoittautuneet:</h4>

<%      myResult = db.executeQuery("SELECT firstnames,lastname FROM person WHERE deleted='f' AND groupparticipant.deleted='f' AND personid=groupparticipant.personid AND groupparticipant.eventgroupid="+groupID+";");

     i = 0;

%>

 

       <table border="0">

        <tr><th>Sukunimi</th><th>Etunimet</th>

<%      while(myResult.next()) {

                i++;

%>

 

        <tr><td><%= myResult.getString("lastname") %></td><td><%= myResult.getString("firstnames") %></td></tr>

 

<%      }

%>

        </table>

 

        <p>Yhteensä <bold><%= i %></bold> ilmoittautunutta.

 

<%      int persons = Integer.parseInt(myTempResult.getString("maxparticipants")) - i;

     if( persons <= 0) {

%>

     Ryhmään ei mahdu enää!

<%   } %>

                <form action="opryRegister.jsp">

<%              if(adgroup.checkUser(String.valueOf(personID),groupID,false)) {

%>

                       <input type="submit" name="button" value="Poista ilmoittautuminen">

<%        }

                else if(persons > 0) {

%>

               Ryhmään mahtuu vielä <%= persons %> henkilöä!

                       <input type="submit" name="button" value="Ilmoittaudu">

<%              }

%>

                <input type="hidden" name="group" value="<%= groupID %>">

                <input type="hidden" name="department" value="<%= selectedDep %>">

                <input type="hidden" name="course" value="<%= selectedValue %>">

                <input type="hidden" name="type" value="<%= type %>">

                </form>

               

<%      } else {

%>

          Et valinnut ryhmää!!

<%   } %>

 

<a href="opry_ilmo.jsp?course=<%= request.getParameter("course") %>&department=<%= request.getParameter("department") %>&<%= type %>=<%= groupID %>">Takaisin</a>

 

 

<!--        <form action="opry_ilmo.jsp">

                <input type="submit" value="Takaisin">

                <input type="hidden" name="course" value="<%= request.getParameter("course") %>">

                <input type="hidden" name="department" value="<%= request.getParameter("department") %>">

                <input type="hidden" name="<%= type %>" value="<%= groupID %>">

        </form>

-->

 

2.14opisRegisterGroup.jsp

<%@ page language="Java" import="kotkabeans.*,java.util.*,java.sql.*,java.lang.*" session="true" autoFlush="true" isThreadSafe="true"

isErrorPage="false"

errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"      scope="application" class="kotkabeans.Tools"/>

<jsp:useBean id="db"         scope="session"     class="kotkabeans.DB"/>

<jsp:useBean id="autoNumber" scope="application" class="kotkabeans.AutoNumber"/>

<jsp:useBean id="localize"   scope="application" class="kotkabeans.Localize"/>

<jsp:useBean id="mail"       scope="application" class="kotkabeans.Mail"/>

<jsp:useBean id="error"      scope="session"     class="kotkabeans.Error"/>

<jsp:useBean id="person"     scope="session"     class="kotkabeans.Person"/>

<jsp:useBean id="usemodule"  scope="application" class="kotkabeans.UseModule"/>

<jsp:useBean id="adgroup"    scope="application" class="kotkabeans.UserToGroup"/>

<jsp:useBean id="adcourse"   scope="application" class="kotkabeans.AddUserToCourse"/>

 

<%

/*****************************************************************************

*                             PAGE DESCRIPTION

******************************************************************************

*

*      NAME:     opisRegisterGroup.jsp

*      LANGUAGE: JSP

*      DATE:     20.3.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 20.3.2000

*   - First prototype

*

*****************************************************************************/

 

        User user = (User)session.getValue("user");

        if(user == null) {

                response.sendRedirect("../portal/showLogin.jsp?return=../course/opisRegisterGroup.jsp");

        }

        else {

            user.setCurrentForm(request.getServletPath());

            user.setCurrentStatus("POST");

            user.setOpStartTime();

                // person parameters (read from user bean)

                int personID=user.getPersonID();

                int homeOrganisationID=user.getOrganisationID(); // 1 = JYU

                int languageID=user.getLanguageID(); // 1 = English, 2 = Finnish

                int accessGroup=1;

 

                ResultSet myResult; // SQL query result

                ResultSet myTempResult;

          ResultSet myTemp2Result;

                int updateFailure = 0;

                int allowContinue = 1;

 

                // connect to database

                db.connect();

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">

<head>

<link rel="StyleSheet" href="kotka2.css" type="text/css" media="screen" title="Kotka stylesheet" />

<title>Kotka</title>

</head>

<body>

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="pageOpisRegisterGroup.code" %>

</div>

 

</body>

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

        }

%>

 

 

2.15pageOpisRegisterGroup.code

<%

/*****************************************************************************

*                             INCLUDE DESCRIPTION

******************************************************************************

*

*      NAME:     pageOpisRegisterGroup.code

*      LANGUAGE: JSP

*      DATE:     9.4.2001

*      AUTHOR:   Heikki Uuksulainen, Jyväskylän yliopisto

*

******************************************************************************

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

*****************************************************************************/

 

/*****************************************************************************

*                                  UPDATES

******************************************************************************

*

* 7.3.2001

*   - First prototype

*

*****************************************************************************/

%>

        

 

<%

        String button=request.getParameter("button");

        if(button == null) button = "";

        String selectedGroupID=request.getParameter("examination");

        if(selectedGroupID == null) selectedGroupID = "0";

 

if(selectedGroupID.equals("0")) {

%>

     <h4> Et valinnut tenttiä!</h4>

<%

} else {

        String courseCode="";

     String time="";

     String spaceCode="";

     String courseName="";

     String info = request.getParameter("info");

     if(info == null) info = "";

 

        myResult = db.executeQuery("SELECT begintime,space.code AS scode,coursetranslation.name AS cname ,course.code AS ccode,eventgroup.eventgroupid FROM eventgroup,course,space,coursetranslation,event WHERE spaceid=eventspace.spaceid AND eventspace.eventid=event.eventid AND event.eventgroupid=eventgroup.eventgroupid AND eventgroup.eventgroupid="+selectedGroupID+" AND eventgroup.courseinstanceid=courseinstance.courseinstanceid AND courseinstance.courseid = course.courseid AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+";");

 

     if(myResult.next()) {

          courseCode = myResult.getString("ccode");

          courseName = myResult.getString("cname");

          time = myResult.getString("begintime");

          spaceCode = myResult.getString("scode");

     }        

 

        if(button.equals("Ilmoittaudu")) {

          if(!adgroup.checkUser(String.valueOf(personID),selectedGroupID,false)){

                        if(adgroup.registerUser(String.valueOf(personID),selectedGroupID,info)) {

%>

                        <h4>Ilmoittautuminen tenttiin suoritettu!</h4>

               <h3><%= courseCode %> <%= courseName %></h3>

               <h4>Paikka: <%= spaceCode %></h4>

               <h4>Aika:   <%= time %></h4>

              

<%

 

                        }

                        else {

%>

                                <h4>Ilmoittautuminen ei onnistunut! Ota yhteys ylläpitäjään!</h4>

<%

                        }

          } else {

%>

               <h4>Olet jo ilmoittautunut kyseiseen tenttiin!</h4>

<%

          }

        }

        else {

               if(button.equals("Poista ilmoittautuminen")) {

                         if(!adgroup.checkUser(String.valueOf(personID),selectedGroupID,false)) {

%>

                    <h4>Et ole ilmoittautunut kyseiseen tenttiin!</h4>

<%

               }

 

                        else {

                    if(adgroup.unregisterUser(String.valueOf(personID),selectedGroupID)) {

%>

                                 <h4>Ilmoittautumisen poisto suoritettu!</h4>

                               <h3><%= courseCode %> <%= courseName %></h3>

                                  <h4>Paikka: <%= spaceCode %></h4>

                                  <h4>Aika:   <%= time %></h4>

<%

 

                             }

                             else {

%>

                               <h4>Ilmoittautumisen poisto ei onnistunut! Ota yhteys ylläpitäjään!</h4>

<%

                             }

                     }

             }

     }

}

%>

 

<form action="opisTentit.jsp">

        <input type="submit" value="OK">

        <input type="hidden" name="department" value="<%= request.getParameter("department") %>"         >

</form>

 

 

 

 

3         Opettajan sivut

Opettajan sivut ovat tämän sovelluksen kaikkein vaativimmat toteutukseltaan, niin käytettävyyden kannalta kuin yleisen ulkoasunkin kannalta. Opettajalla on todella paljon vaatimuksia käyttöliittymän toimintojen suhteen ja toiminnot tulisi olla käytettävissä helposti, sillä opettajat käyttävät järjestelmää huomattavasti enemmän kuin opiskelijat.

1.12                3.1         ope_aloitus.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*,

java.io.*, javax.servlet.*" session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

<jsp:useBean id="tools"                   scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                  scope="session"        class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"              scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"           scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                   scope="session"        class="kotkabeans.Error" />

<jsp:useBean id="person"             scope="session"        class="kotkabeans.Person" />

<jsp:useBean id="usemodule"               scope="application"     class="kotkabeans.UseModule" />

     

<%  

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_aloitus

*         LANGUAGE:     jsp

*               DATE:          1.3.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*

*

*

****************************************************************************************************/

 

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_aloitus.jsp");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

  String toiminto = request.getParameter("toiminto");

  String valittu_k = request.getParameter("kurssit");

  if(valittu_k == null) { valittu_k = ""; }

  if(toiminto == null)  { toiminto = ""; }

 

  if(toiminto.equals("Pisteytys") || toiminto.equals("pisteytys")) {

    response.sendRedirect("./ope_paivitys.jsp?kurssit="+valittu_k+"");

  }

  else if(toiminto.equals("Demopisteytys") || toiminto.equals("demopisteytys")) {

    response.sendRedirect("./ope_demopisteet.jsp?kurssit="+valittu_k+"");

  }

  else if(toiminto.equals("Pikkupäivitys") || toiminto.equals("pikkupäivitys")) {

    response.sendRedirect("./ope_demopisteet.jsp?kurssit="+valittu_k+"");

  }

  else if(toiminto.equals("Osallistujat") || toiminto.equals("osallistujat")) {

    response.sendRedirect("./ope_raportit.jsp?kurssit="+valittu_k+"");

  }

  else {

%>

 

    

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title>

 

<link href="kotka2.css" rel="stylesheet" type="text/css" />

 

</head>

 

 

<body> 

 

<div class="leftbar"> 

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="ope_aloitus.code" %> 

</div>

 

</body>

 

</html>

 

<%

  }

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

 

1.13                            3.2                      ope_aloitus.code

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_aloitus

*         LANGUAGE:     jsp

*               DATE:          12.3.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*

*         date  / action                    / author

*               - what has been done

*               ------/---------------------------/--------------

*

*              12.3. / Page divided to two parts / Minna Lesonen

*         - ope_aloitus.jsp kokoaan sivun

*         - ope_aloitus.code sisältää asiaosuuden sivusta

*

****************************************************************************************************/

%>

<%

  String valinta;

  String valittu_kurssi = request.getParameter("kurssit");

%>

 

<h1>Kurssikirjanpito</h1>

 

<h3>Kurssin valinta:</h3><br />

<form action="./ope_aloitus.jsp" method="get">

 Koodi | nimi | aloitusaika <br />

<%@ include file="esiintymat.code" %>

 

<br />

<input name="toiminto" value="Pisteytys" type="submit" />

<input name="toiminto" value="Demopisteytys" type="submit" />

<input name="toiminto" value="Pikkupäivitys" type="submit" />

<input name="toiminto" value="Osallistujat" type="submit" />

<br /><br />

</form>

1.14                            3.3                      ope_demopisteet.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*"

session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

     

<jsp:useBean id="tools"                   scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                  scope="session"        class="kotkabeans.DB" />

<jsp:useBean id="autonumber"         scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"           scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                   scope="session"        class="kotkabeans.Error" />

<jsp:useBean id="person"             scope="session"        class="kotkabeans.Person" />

<jsp:useBean id="usemodule"                 scope="application"     class="kotkabeans.UseModule" />

                            

<%                    

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_demopisteet

*         LANGUAGE:     jsp

*               DATE:          27.4.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*  

*

****************************************************************************************************/

                                                                                                                             

User user =(User)session.getValue("user");

 

String valittu_kurssi = request.getParameter("kurssit");

 

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_demopisteet.jsp?kurssit="+valittu_kurssi+"");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myResult2;                               // SQL query result

  ResultSet myResult3;                               // SQL query result

  ResultSet myResult4;                               // SQL query result

  ResultSet myResult5;                               // SQL query result

  ResultSet myTempResult;

  ResultSet myTempResult2;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title>

 

<link href="kotka2.css" rel="stylesheet" type="text/css">

 

</head>

 

<body>

 

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="ope_demopisteet.code" %>

</div>

 

</body>

 

</html>

 

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

1.15                            3.4                      ope_demopisteet.code

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*               NAME:           ope_demopisteet.code

*               LANGUAGE:       jsp

*               DATE:           6.4.01

*               AUTHOR:         Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*               TOIMINTA

****************************************************************************************************

*

*

****************************************************************************************************

 

****************************************************************************************************

*               UPDATES

****************************************************************************************************

*

*

****************************************************************************************************/

%>

 

<%

  String valinta = request.getParameter("kurssit");

  int i=1;

//  int access_level = usemodule.courseRight(personID, Integer.parseInt(valittu_kurssi));

  int access_level = 3;

  String eg_id = "", eg_nimi="";

  String oppilas_id = "";

  String fiildi ="";

  String fiildit[] = new String[10000];

  int fid = 0, fgid = 0;

  int summa = 0, ali = 0, al = -1;

  String rek="", val="";

  String nimi="nimi_", tulos="tulos_", paivays="pvm_", id="id_";

  String tallenna = request.getParameter("tallenna");

  int a=0;

 

if(tallenna != null && tallenna.equals("tallenna")) {

// TALLENNETAAN TIEDOT

  String t_nimi="", t_tulos="", t_pvm="", t_id="", t_fid="";

  String vertaus = "", vertaus_tulos="";

  int muuttuja = 0, apu = 0, m2=-1;

  String onnistuu ="TULOS: ";

  int kerrat = Integer.parseInt(request.getParameter("kpl"));

  for(int k=0; k<=kerrat; k++) {

    muuttuja = 0;

    do {

      t_tulos = request.getParameter(tulos + k + "_" + muuttuja);

      // PÄIVÄYKSEKSI MENEE MUUTOS/LISÄYSPÄIVÄ

      t_id = request.getParameter(id + k + "_" + muuttuja);

      t_fid = request.getParameter("fid_" + k + "_" + muuttuja);

      if(t_id != null && t_fid != null && t_tulos != null) {

     if(t_tulos.equals(""))  { t_tulos = "0"; }

        myResult5 = db.executeQuery("SELECT value FROM result WHERE personid = "+t_id+" AND fieldid = "+t_fid+";");

        // TALLENNETAAN MUUTETUT ARVOT

        if(myResult5.next()) {

       vertaus = myResult5.getString("value");

       if(vertaus != null && !vertaus.equals("") && (vertaus.compareTo(t_tulos) != 0)) {

         apu = db.executeUpdate("UPDATE result SET value="+t_tulos+", registered = 'now', person2id = "+personID+" WHERE personid = "+t_id+" AND fieldid="+t_fid+";");

         onnistuu = onnistuu + apu;

       }

        }

        // TALLENNETAAN UUDET ARVOT, TÄNNE EI PITÄISI KOSKAAN TULLA!!!!

        else { %>else <%

       apu = db.executeUpdate("INSERT INTO result VALUES(FALSE, "+t_id+", "+personID+", "+t_fid+", 'now', "+t_tulos+");");

       onnistuu = onnistuu + apu;

        }

      }

      muuttuja++;

    }while(t_tulos != null && !t_tulos.equals("") && !t_tulos.equals("null"));

  }

  if(onnistuu.indexOf("0") >= 0) { %> <font class="pun">Kaikkien tulosten vienti ei onnistunut! <%= onnistuu %></font><br /> <%}

  else                   { %> Tulosten vienti onnistui!<br /> <%}

}

 

%>

<form method="get" action="./ope_demopisteet.jsp">

<H3>Valitse kurssi:</H3>

<%@ include file="esiintymat.code" %>

<input type="submit" value="Hae kurssin tiedot"/>

<br />

 

<input type="submit" value="tallenna" name="tallenna" />

<%

// OPETTAJALLE PITÄÄ HAKEA KAIKKIEN DEMOPISTEET PÄIVITETTÄVIKSI,

// DEMONPITÄJILLE MYÖS

if(valittu_kurssi != null && !valittu_kurssi.equals("")) {

 

  // HAETAAN KAIKKI KURSSIESIINTYMÄN eventgroupid:t

  myResult = db.executeQuery("SELECT DISTINCT eventgroupid, name FROM eventgroup WHERE courseinstanceid = "+valittu_kurssi+" AND grouptypeid = 1 AND deleted = FALSE;");

 

  // OPETTAJAN OIKEUKSILLA

  %><h4>Hardkoodattu open oikeuksille!</h4><%

  if(access_level == 3) {

    // KÄYDÄÄN LÄPI KAIKKI eventgroupissa OLEVAT DEMORYHMÄT

    while(myResult.next()) {

      eg_id = myResult.getString("eventgroupid");

      eg_nimi = myResult.getString("name");

 

      // HAETAAN eventgrouppiin KUULUVIEN eventtien MÄÄRÄ

      myTempResult2 = db.executeQuery("SELECT DISTINCT count(eventid) AS summa FROM event WHERE eventgroupid = "+eg_id+" AND deleted =FALSE;");

      myTempResult2.next();

      summa = myTempResult2.getInt("summa");

      %><h5><%= eg_nimi %></h5><table>

        <tr><th>sukunimi</th><th>kutsumanimi</th><th>syntymäaika</th><%

     for(int p=0; p<summa; p++) { %><th><%= p+1 %> päiväys</th><th>tulos</th><th></th> <% }

     %></tr><%

      // HAETAAN KAIKKIEN RYHMÄÄN OSALLISTUNEIDEN PERSONID:T

      myTempResult = db.executeQuery("SELECT DISTINCT gp.personid, p.lastname FROM groupparticipant AS gp, person AS p WHERE gp.eventgroupid = "+eg_id+" AND gp.deleted = FALSE AND p.personid = gp.personid AND p.deleted= FALSE ORDER BY p.lastname;");

      // KÄYDÄÄN LÄPI KAIKKI RYHMÄÄN OSALLISTUNEET

      while(myTempResult.next()) {

     oppilas_id = myTempResult.getString("personid");

     // AL PÄIVITTYY OPISKELIJAA VAIHTAESSA

     al++;

 

     // HAETAAN OPISKELIJAN TIEDOT

     myResult3 = db.executeQuery("SELECT DISTINCT * FROM person AS p WHERE p.personid = "+oppilas_id+" AND p.deleted = FALSE;");

     if(myResult3.next()) {

         %><tr><td class="reunat"><%= myResult3.getString("lastname") %></td>

          <td class="reunat"><%= myResult3.getString("callname") %></td>

          <td class="reunat"><%= myResult3.getString("socsecbirth") %></td><%

 

       // NOLLATAAN LASKURI, JOKA KULKEE FIELDIN MUKAAN

       ali = 0;

       //for(int d=0; d<summa; d++) {

 

         // FIELDTYPE 5 ON VARATTU DEMOPISTEILLE!!

         // HAETAAN FIELDID:T JA TULOKSET

         myResult4 = db.executeQuery("SELECT DISTINCT r.fieldid, fg.fieldgroupid, r.value, date(r.registered) AS registered "+

               "FROM fieldgroup AS fg, field, result AS r WHERE field.fieldtypeid = 5 AND field.fieldgroupid = fg.fieldgroupid AND fg.courseinstanceid = "+valittu_kurssi+" AND fg.deleted = FALSE AND field.deleted =FALSE AND r.deleted = FALSE AND r.fieldid = field.fieldid AND r.personid = "+oppilas_id+";");

         // KÄYDÄÄN LÄPI KAIKKI KAIKKI KENTÄT

            while(ali < summa) { 

           if(myResult4.next()) {

             fiildi = myResult4.getString("fieldid");

          fiildit[ali] = myResult4.getString("fieldid");

             fgid = Integer.parseInt(myResult4.getString("fieldgroupid"));

          rek = myResult4.getString("registered");

          val = myResult4.getString("value");

           }

 

           // JOS EI LÖYDY ENÄÄ FIELDID:TÄ, TEHDÄÄN SELLAINEN

           if(fiildi == null || fiildi.equals("")) {

             if(al == 0 && ali == 0) {

               fgid = autonumber.getNumber("FieldGroup");

               db.executeUpdate("INSERT INTO fieldgroup VALUES(FALSE, "+fgid+", "+valittu_kurssi+");");

               db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 1, "+fgid+", 1);");

               db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+fgid+", 2);");

               db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+fgid+", 3);");

               db.executeUpdate("INSERT INTO fieldgrouplang VALUES(FALSE, "+fgid+", 2, 'demopisteet');");

               db.executeUpdate("INSERT INTO fieldgrouplang VALUES(FALSE, "+fgid+", 1, 'dem. points');");

            for(int kello=0; kello<summa; kello++) {

                 fiildit[kello] = Integer.toString(autonumber.getNumber("Field"));

                 db.executeUpdate("INSERT INTO field VALUES(FALSE, "+fiildit[kello]+", 5, "+fgid+", '0', 1);");

                 db.executeUpdate("INSERT INTO result VALUES(FALSE, "+oppilas_id+", "+personID+", "+fiildit[kello]+", 'now', 0);");

            }

             }

          fiildi = fiildit[ali];

            }

 

           %><td class="reunat"><%= rek %></td>

             <td class="reunat"><input type="text" value="<%= val %>" name="<%= tulos + al +"_"+ ali %>" size = "5" /></td>

             <td class="reunat"><input type="hidden" value="<%= oppilas_id %>" name = "<%= id+ al +"_"+ ali %>" />

             <input type="hidden" value="<%= fiildi %>" name = "<%= "fid_"+al+"_"+ali %>" /></td><%

           ali++;

           fiildi ="";

         } // while

       %></tr><%

 

     }

      }

    }

    %></table><%

  }

  // TUNTIOPETTAJAN OIKEUKSILLA

  else if(access_level == 2) {

 

    // KÄYDÄÄN LÄPI KAIKKI eventgroupissa OLEVAT DEMORYHMÄT

    while(myResult.next()) {

      eg_id = myResult.getString("eventgroupid");

      eg_nimi = myResult.getString("name");

 

      // HAETAAN eventgrouppiin KUULUVIEN eventtien MÄÄRÄ

      myTempResult2 = db.executeQuery("SELECT DISTINCT count(eventid) AS summa FROM event WHERE eventgroupid = "+eg_id+" AND deleted =FALSE;");

      myTempResult2.next();

      summa = myTempResult2.getInt("summa");

      %><h5><%= eg_nimi %></h5><table>

        <tr><th>sukunimi</th><th>kutsumanimi</th><th>syntymäaika</th><%

     for(int p=0; p<summa; p++) { %><th><%= p+1 %> päiväys</th><th>tulos</th><th></th> <% }

     %></tr><%

      // HAETAAN KAIKKIEN RYHMÄÄN OSALLISTUNEIDEN PERSONID:T

      myTempResult = db.executeQuery("SELECT DISTINCT gp.personid, p.lastname FROM groupparticipant AS gp, person AS p WHERE gp.eventgroupid = "+eg_id+" AND gp.deleted = FALSE AND p.personid = gp.personid AND p.deleted= FALSE ORDER BY p.lastname;");

      // KÄYDÄÄN LÄPI KAIKKI RYHMÄÄN OSALLISTUNEET

      while(myTempResult.next()) {

     oppilas_id = myTempResult.getString("personid");

     // AL PÄIVITTYY OPISKELIJAA VAIHTAESSA

     al++;

 

     // HAETAAN OPISKELIJAN TIEDOT

     myResult3 = db.executeQuery("SELECT DISTINCT * FROM person AS p WHERE p.personid = "+oppilas_id+" AND p.deleted = FALSE;");

     if(myResult3.next()) {

         %><tr><td class="reunat"><%= myResult3.getString("lastname") %></td>

          <td class="reunat"><%= myResult3.getString("callname") %></td>

          <td class="reunat"><%= myResult3.getString("socsecbirth") %></td><%

 

       // NOLLATAAN LASKURI, JOKA KULKEE FIELDIN MUKAAN

       ali = 0;

       //for(int d=0; d<summa; d++) {

 

         // FIELDTYPE 5 ON VARATTU DEMOPISTEILLE!!

         // HAETAAN FIELDID:T JA TULOKSET

         myResult4 = db.executeQuery("SELECT DISTINCT r.fieldid, fg.fieldgroupid, r.value, date(r.registered) AS registered "+

               "FROM fieldgroup AS fg, field, result AS r WHERE field.fieldtypeid = 5 AND field.fieldgroupid = fg.fieldgroupid AND fg.courseinstanceid = "+valittu_kurssi+" AND fg.deleted = FALSE AND field.deleted =FALSE AND r.deleted = FALSE AND r.fieldid = field.fieldid AND r.personid = "+oppilas_id+";");

         // KÄYDÄÄN LÄPI KAIKKI KAIKKI KENTÄT

            while(ali < summa) { 

           if(myResult4.next()) {

             fiildi = myResult4.getString("fieldid");

          fiildit[ali] = myResult4.getString("fieldid");

             fgid = Integer.parseInt(myResult4.getString("fieldgroupid"));

          rek = myResult4.getString("registered");

          val = myResult4.getString("value");

           }

 

           // JOS EI LÖYDY ENÄÄ FIELDID:TÄ, TEHDÄÄN SELLAINEN

           if(fiildi == null || fiildi.equals("")) {

             if(al == 0 && ali == 0) {

               fgid = autonumber.getNumber("FieldGroup");

               db.executeUpdate("INSERT INTO fieldgroup VALUES(FALSE, "+fgid+", "+valittu_kurssi+");");

               db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 1, "+fgid+", 1);");

               db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+fgid+", 2);");

               db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+fgid+", 3);");

               db.executeUpdate("INSERT INTO fieldgrouplang VALUES(FALSE, "+fgid+", 2, 'demopisteet');");

               db.executeUpdate("INSERT INTO fieldgrouplang VALUES(FALSE, "+fgid+", 1, 'dem. points');");

            for(int kello=0; kello<summa; kello++) {

                 fiildit[kello] = Integer.toString(autonumber.getNumber("Field"));

                 db.executeUpdate("INSERT INTO field VALUES(FALSE, "+fiildit[kello]+", 5, "+fgid+", '0', 1);");

                 db.executeUpdate("INSERT INTO result VALUES(FALSE, "+oppilas_id+", "+personID+", "+fiildit[kello]+", 'now', 0);");

            }

             }

          fiildi = fiildit[ali];

            }

 

           %><td class="reunat"><%= rek %></td>

             <td class="reunat"><input type="text" value="<%= val %>" name="<%= tulos + al +"_"+ ali %>" size ="5" /></td>

             <td class="reunat"><input type="hidden" value="<%= oppilas_id %>" name = "<%= id+ al +"_"+ ali %>" />

             <input type="hidden" value="<%= fiildi %>" name = "<%= "fid_"+al+"_"+ali %>" /></td><%

           ali++;

           fiildi ="";

         } // while

       %></tr><%

 

     }

      }

    }

    %></table><%

 

  }

  // MUUTEN

  else {

    response.sendRedirect("./OpisKurssit.jsp");

  }

  %><input type="submit" value="tallenna" name="tallenna" />

    <input type="hidden" value="<%= al %>" name="kpl" /><%

}

 

else { %>

<h2> Valitse kurssi! </h2> <%

}

 

%>

</form>

1.16                            3.5                      ope_kurssilaiset.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*" session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"                   scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                  scope="session"        class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"         scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"           scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                   scope="session"        class="kotkabeans.Error" />

<jsp:useBean id="person"             scope="session"        class="kotkabeans.Person" />

<jsp:useBean id="usemodule"               scope="application"     class="kotkabeans.UseModule" />

 

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_kurssilaiset

*         LANGUAGE:     jsp

*               DATE:          1.3.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*

*

*

****************************************************************************************************/

 

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_kurssilaiset.jsp");

}

else {

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

 String valittu_kurssi = request.getParameter("kurssit");

 String valinta;

 String valittu_k = request.getParameter("kurssit");

 String demot = request.getParameter("demot");

 String paivitys = request.getParameter("paivitys");

 // SIIRRYTÄÄN LISÄYS-SIVUSTOON, JOS KÄYTTÄJÄ ON PAINANUT LISÄYS- TAI MUOKKAUS-PANIKETTA

 if(demot != null && demot.equals("Demopisteiden anto")) {

     if(valittu_k == null)  { response.sendRedirect("ope_demopisteet.jsp"); }

     else          { response.sendRedirect("ope_demopisteet.jsp?kurssit="+valittu_k+""); }

 }

 else if(paivitys != null && paivitys.equals("Opiskelijoiden tietojen muokkaus")) {

     if(valittu_k == null)  { response.sendRedirect("ope_paivitys.jsp"); }

     else          { response.sendRedirect("ope_paivitys.jsp?kurssit="+valittu_k+""); }

 }

 else {

 

%>

 

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KURki</title>

 

<link href="kotka2.css" rel="stylesheet" type="text/css">

 

</head>

 

<body>

 

<!-- Muutettu -->

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="ope_kurssilaiset.code" %>

</div>

 

</body>

 

</html>

 

<%

}

}

%>

1.17                            3.6                       ope_kurssilaiset.code

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KURki</title>

 

</head>

 

<body>

 

<h1>Kurssilaisiin liittyvien tietojen muokkaus</h1>

 

<form action="./ope_kurssilaiset.jsp" method="get">

 

 <div class="vasen">

  <%@ include file="esiintymat.code" %>

 </div>

 

 <div>

  <p>

  <input type="submit" name="demot" value="Demopisteiden anto" /><br />

  <input type="submit" name="paivitys" value="Opiskelijoiden tietojen muokkaus" /><br />

  <input type="submit" name="pitajat" value="Lisää henkilö kurssille" /><br />

  <input type="submit" name="kurssilaiset" value="Hae kurssille ilmoittautuneet" /><br />

  </p>

 </div>

 

</form>

 

<%

if(valittu_kurssi != null) {

 

  %><p>

  <h3>Raportit:</h3>

  <a href="./raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=demot">Demopisteet</a><br>

  <a href="./raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=tentit">Tenttipisteet</a><br />

  <a href="./raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=muu">Keksimätön raportti</a>

  </p> <%

 

  myResult = db.executeQuery("SELECT callname, lastname FROM person "+

                    "WHERE personid in(SELECT personid FROM courseparticipant "+

                                   "WHERE courseinstanceid = "+valittu_kurssi+" AND usergroupid = 1) "+

                    "ORDER BY lastname;");

  %><h3>Kurssilaiset:</h3>

  <table><%

  while(myResult.next()) {

    %><tr><td><%= myResult.getString("lastname") %></td><td><%= myResult.getString("callname") %></td></tr><%

  }

  %></table><%

 

  myResult = db.executeQuery("SELECT callname, lastname FROM person "+

                    "WHERE personid in(SELECT personid FROM courseparticipant "+

                                   "WHERE courseinstanceid = "+valittu_kurssi+" AND usergroupid = 2) "+

                    "ORDER BY lastname;");

  %><h3>Ohjaajat ja tuntiopettajat:</h3>

  <table><%

  while(myResult.next()) {

    %><tr><td><%= myResult.getString("lastname") %></td><td><%= myResult.getString("callname") %></td></tr><%

  }

  %></table><%

 

  myResult = db.executeQuery("SELECT callname, lastname FROM person "+

                    "WHERE personid in(SELECT personid FROM courseparticipant "+

                                   "WHERE courseinstanceid = "+valittu_kurssi+" AND usergroupid = 3) "+

                    "ORDER BY lastname;");

  %><h3>Luennoijat:</h3>

  <table><%

  while(myResult.next()) {

    %><tr><td><%= myResult.getString("lastname") %></td><td><%= myResult.getString("callname") %></td></tr><%

  }

  %></table><%

 

}

%>

 

</body>

 

</html>

1.18                            3.7                      ope_kurssit.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*"

session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"                   scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                  scope="session"        class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"         scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"           scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                   scope="session"        class="kotkabeans.Error" />

<jsp:useBean id="person"             scope="session"        class="kotkabeans.Person" />

<jsp:useBean id="usemodule"               scope="application"     class="kotkabeans.UseModule" />                   

                                               

<%  

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_aloitus

*         LANGUAGE:     jsp

*               DATE:          1.3.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*

*         date  / action                    / author

*               - what has been done

*               ------/---------------------------/--------------

*

*              19.3. / Added kurssit.code        / Minna Lesonen

*         - kurssien valintataulukko tulee esiintymat.code:lla

*

*              10.4. / Added courseinstance add  / Minna Lesonen

*         - kurssiesiintymän lisäämiseen päästään napin painamisella ja sendRedirectillä

*

****************************************************************************************************/

                                                   

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_kurssit.jsp");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  ResultSet myTempResult2;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

 String valittu_k = request.getParameter("kurssit");

 String lisays = request.getParameter("lisaa");

 String muokkaus = request.getParameter("muokkaa");

 String lisatiedot = request.getParameter("lisa_tiedot");

 String demot = request.getParameter("demot");

 String paivitys = request.getParameter("paivitys");

 // SIIRRYTÄÄN LISÄYS-SIVUSTOON, JOS KÄYTTÄJÄ ON PAINANUT LISÄYS- TAI MUOKKAUS-PANIKETTA

 if( (lisays != null && lisays.equals("lisaa")) || (muokkaus != null && muokkaus.equals("muokkaa"))) {

     if(valittu_k == null) { response.sendRedirect("ope_lisaa_kurssi.jsp?muokkaa="+muokkaus+""); }

     else                  { response.sendRedirect("ope_lisaa_kurssi.jsp?kurssit="+valittu_k+"&muokkaa="+muokkaus+""); }

 }

 else if(lisatiedot != null && lisatiedot.equals("lisatiedot")) {

     if(valittu_k == null)  { response.sendRedirect("ope_lisatiedot.jsp"); }

     else          { response.sendRedirect("ope_lisatiedot.jsp?kurssit="+valittu_k+""); }

 }

 else if(demot != null && demot.equals("Demopisteiden anto")) {

     if(valittu_k == null)  { response.sendRedirect("ope_demopisteet.jsp"); }

     else          { response.sendRedirect("ope_demopisteet.jsp?kurssit="+valittu_k+""); }

 }

 else if(paivitys != null && paivitys.equals("Opiskelijoiden tietojen muokkaus")) {

     if(valittu_k == null)  { response.sendRedirect("ope_paivitys.jsp"); }

     else          { response.sendRedirect("ope_paivitys.jsp?kurssit="+valittu_k+""); }

 }

 else {

%>         

    

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title>  

 

<link href="kotka2.css" rel="stylesheet" type="text/css">

 

</head>

 

<body>

 

  

<div class="leftbar">

  <%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

  <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

  <%@ include file="ope_kurssit.code" %>

</div>

 

</body>

 

</html>

 

 <%

 }

 %> 

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

1.19                            3.8                       ope_kurssit.code

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*               NAME:           ope_kurssit.code

*               LANGUAGE:       jsp

*               DATE:           6.4.01

*               AUTHOR:         Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*               TOIMINTA

*

*         MAIL-PAVUN TOIMIMATTOMUUDEN VUOKSI KAIKKI MAILIN LÄHETTÄMISTÄ VAATIVAT

*         TOIMINNOT EIVÄT TOIMI!!

*         Esim. Kurssin pysyvä poistaminen pitäisi hoitia kys. painiketta painamalla,

*         joka lähettää ylläpitäjälle pyynnön kurssin poistamisesta.

****************************************************************************************************

****************************************************************************************************

 

****************************************************************************************************

*               UPDATES

****************************************************************************************************

*         6.4.01  Lisätty demo- ja ohjausaikojen haku dynaamisesti ja

*              kurssille ilmoittautuneiden määrän laskuri.

*              Demo- ja ohjausajat incluudataan

*              (hae_demot_listana.code ja hae_ohjaukset_listana.code)

*         24.4.01 Muutettu kurssin tapahtumat dynaamiseksi hauksi.

*              (hae_ryhmat_listana.code)

*

*

****************************************************************************************************/

%>

<%

 String valittu_kurssi = request.getParameter("kurssit");

 String valittu_tapahtuma = request.getParameter("poista");

 String valittu_aktivoi = request.getParameter("aktivoi");

 String maara;

 String valinta;

 String aloitus = "", lopetus = "", uri = "", tila = "";

 String ryhmaid = "";

 String poisto_id ="";

%>

 

<h1>Kurssien muokkaus</h1>

 

<%

 

/***********************************************************************************************

First we check if user wants to remove selected courseinstance from students.                 

If user wants remove a courseinstance, he must have selected the courseinstace.

If he hasn't, we show an error message.

After action we show results to user.

***********************************************************************************************/

 

if(valittu_tapahtuma != null && valittu_tapahtuma.equals("poista")) {

 

  if(valittu_kurssi != null) {

     int poistettu = db.executeUpdate("UPDATE courseinstance SET deleted = TRUE WHERE courseinstanceid="+valittu_kurssi+";");

     int poistettu_eg = db.executeUpdate("UPDATE eventgroup SET deleted = TRUE WHERE courseinstanceid = "+valittu_kurssi+";");

     myResult = db.executeQuery("SELECT eventgroupid FROM eventgroup WHERE courseinstanceid ="+valittu_kurssi+" AND deleted = TRUE;");

     if(myResult.next()) {

       poisto_id = myResult.getString("eventgroupid");

       int poistettu3 = db.executeUpdate("UPDATE event SET deleted=TRUE WHERE eventgroupid = "+poisto_id+";");

     }

     int poistettu_fg = db.executeUpdate("UPDATE fieldgroup SET deleted = TRUE WHERE courseinstanceid = "+valittu_kurssi+";");

     myResult = db.executeQuery("SELECT fieldgroupid FROM fieldgroup WHERE courseinstanceid ="+valittu_kurssi+" AND deleted = TRUE;");

     if(myResult.next()) {

       poisto_id = myResult.getString("fieldgroupid");

       int poistettu3 = db.executeUpdate("UPDATE field SET deleted=TRUE WHERE fieldgroupid = "+poisto_id+";");

     }

     if(poistettu > 0 ) { %>

       <font class="pun">Kurssi poistettu!</font><br /> <%

     }

     else { %>

       <font class="pun">Kurssia ei poistettu!</font><br /> <%

     }

     if(poistettu_eg > 0 ) { %>

       <font class="pun">Kurssin tapahtumat poistettu!</font><br /> <%

     }

     else { %>

       <font class="pun">Kurssin tapahtumia ei poistettu (tai niitä ei ollut)!</font><br /> <%

     }

     if(poistettu_fg > 0 ) { %>

       <font class="pun">Kurssin lisatapahtumat poistettu!</font><br /> <%

     }

     else { %>

       <font class="pun">Kurssin lisatapahtumia ei poistettu (tai niitä ei ollut)!</font><br /> <%

     }

  }

  else { %>

     <font class="pun">Et valinnut kurssia!</font> <%

  }

}

 

/***********************************************************************************************

If user wants to re-activate the selected courseinstance and make it visible to students,

we update the deleted field of selected courseinstance and it's evenrtgroups,

events, fieldgroups and fields.            

If user wants remove a courseinstance, he must have selected the courseinstace.

If he hasn't, we show an error message.

After action we show results to user.

***********************************************************************************************/

 

if(valittu_aktivoi != null && valittu_aktivoi.equals("aktivoi")) {

  if(valittu_kurssi != null) {

     int palautettu = db.executeUpdate("UPDATE courseinstance SET deleted = FALSE WHERE courseinstanceid="+valittu_kurssi+";");

     int palautettu_eg = db.executeUpdate("UPDATE eventgroup SET deleted = FALSE WHERE courseinstanceid = "+valittu_kurssi+";");

     myResult = db.executeQuery("SELECT eventgroupid FROM eventgroup WHERE courseinstanceid ="+valittu_kurssi+" AND deleted = FALSE;");

     if(myResult.next()) {

       poisto_id = myResult.getString("eventgroupid");

       int palautettu3 = db.executeUpdate("UPDATE event SET deleted=FALSE WHERE eventgroupid = "+poisto_id+";");

     }

     int palautettu_fg = db.executeUpdate("UPDATE fieldgroup SET deleted = FALSE WHERE courseinstanceid = "+valittu_kurssi+";");

     myResult = db.executeQuery("SELECT fieldgroupid FROM fieldgroup WHERE courseinstanceid ="+valittu_kurssi+" AND deleted = FALSE;");

     if(myResult.next()) {

       poisto_id = myResult.getString("fieldgroupid");

       int poistettu3 = db.executeUpdate("UPDATE field SET deleted=FALSE WHERE fieldgroupid = "+poisto_id+";");

       db.executeUpdate("UPDATE fieldgrouplang SET deleted=FALSE WHERE fieldgroupid = "+poisto_id+";");

       db.executeUpdate("UPDATE fieldtranslation SET deleted=FALSE "+

                  "WHERE fieldid IN(SELECT fieldid FROM field WHERE fieldgroupid = "+poisto_id+");");

     }

     if(palautettu > 0 ) { %>

       <font class="pun">Kurssi aktivoitu!</font><br /> <%

     }

     else { %>

       <font class="pun">Kurssia ei aktivoitu!</font><br /> <%

     }

     if(palautettu_eg > 0 ) { %>

       <font class="pun">Kurssin tapahtumat aktivoitu!</font><br /> <%

     }

     else { %>

       <font class="pun">Kurssin tapahtumia ei aktivoitu (tai niitä ei ollut)!</font><br /> <%

     }

     if(palautettu_fg > 0 ) { %>

       <font class="pun">Kurssin lisatapahtumat aktivoitu!</font><br /> <%

     }

     else { %>

       <font class="pun">Kurssin lisatapahtumia ei aktivoitu (tai niitä ei ollut)!</font><br /> <%

     }

  }

  else { %>

     <font class="pun">Et valinnut kurssia!</font> <%

  }

}

 

 

/***********************************************************************************************

If user wants add a new courseinstance, but he hasn't it in the list, he has to use this link.

***********************************************************************************************/

%>

<b><a href="addCourseInstance.jsp">Lisää uuden kurssin instanssi.</a></b>

 

<div class="keskelle">

<form method="get" action="./ope_kurssit.jsp">

 

<div class="vasen">

<h3>Valitse kurssi:</h3>

<%

/***********************************************************************************************

Esiintymat.code includes a list, witch includes all users courseinstaces.

To use this file you have to presented two stringd valittu_kurssi and valinta.

In valittu_kurssi in the id of selected courseinstace and avlinta can be empty.

***********************************************************************************************/

%>

<%@ include file="esiintymat.code" %>

</div>

 

<!--div class="tyhja_oikea"-->

<br /><br />

<input type="submit" value="Hae kurssin tiedot"/><br />

<a href="ope_lisaa_kurssi.jsp?kurssit=<%=valittu_kurssi%>&lisaa=lisaa">Lisaa</a><br />

<a href="ope_lisaa_kurssi.jsp?kurssit=<%=valittu_kurssi%>&muokkaa=muokkaa">Muokkaa</a><br />

<a href="ope_kurssit.jsp?kurssit=<%=valittu_kurssi%>&poista=poista">Poista</a><br />

<a href="ope_lisatiedot.jsp?kurssit=<%=valittu_kurssi%>">Lisatiedot</a><br />

<a href="ope_kurssit.jsp?kurssit=<%=valittu_kurssi%>&aktivoi=aktivoi">Aktivoi</a><br />

<a href="ope_kurssit.jsp?kurssit=<%=valittu_kurssi%>&pysyva=poista">Poista pysyvästi (ei toimi)</a><br />

<a href="ope_kurssit.jsp?kurssit=<%=valittu_kurssi%>&lista=luo">Postituslistan luonti (ei toimi)</a><br />

<a href="ope_demopisteet.jsp?kurssit=<%=valittu_kurssi%>&demot=anto">Demopisteiden anto</a><br />

<a href="ope_paivitys.jsp?kurssit=<%=valittu_kurssi%>&paivita=paivita">Opiskelijoiden pisteiden

muokkaus</a><br />

 

 

<!--

  <br />

<input type="submit" value="lisaa" name="lisaa"/>

<input type="submit" value="muokkaa" name="muokkaa"/>

<input type="submit" value="poista" name="poista"/>

<br />

<input type="submit" value="lisatiedot" name="lisa_tiedot" />

<input type="submit" value="aktivoi" name="aktivoi"/>

<br />

<input type="submit" value="raportit" />

<input type="submit" value="poista pysyvasti" name="pysyva" />

<br /><br />

<input type="submit" value="Postituslistan luonti" />

<br />

<input type="submit" value="Demopisteiden anto" name="demot"/>

<br />

<input type="submit" value="Opiskelijoiden tietojen muokkaus" name="paivitys"/>

<br /><br />

<input type="submit" value="Hae kurssin tiedot"/>

<br /><br /><br />   

-->

<!--/div-->

 

</form>

</div>

 

 

<%   

/********************************************************************************************************************

Now we fetch from database infromation about courseinstance

and show it to user.

We include file hae_ryhmat_listana.code, witch needs courseinstace and grouptypeid.

You have have two strings valittu_kurssi and ryhmaid to use this file.

In ryhmaid has to be the id of wanted grouptype and in valittu_kurssi courseinstanceid.

********************************************************************************************************************/

 

  if(valittu_kurssi == null || valittu_kurssi == "" ) {

    maara = "0";

  }

  else {        

    myResult = db.executeQuery("SELECT count(courseinstanceid) AS maara FROM courseparticipant WHERE courseinstanceid = "+valittu_kurssi+"; ");

    // next palauttaa false, jos kyselyn tuloksena ei tullut mitään

    // samalla se siirtää osoittimen kyselyn seuraavalle riville

    if(myResult.next()) { maara = myResult.getString("maara"); }

    else                { maara = "0"; }

  }

  if(valittu_kurssi != null && !valittu_kurssi.equals("")) {

    myResult = db.executeQuery("SELECT date(startdate) AS startdate, date(enddate) AS enddate, uri, deleted FROM courseinstance WHERE courseinstanceid = "+valittu_kurssi+";");

    if(myResult.next()) {

     aloitus = myResult.getString("startdate");

     lopetus = myResult.getString("enddate");

     uri = myResult.getString("uri");

     tila = myResult.getString("deleted");

    }

  }

%>

 

<div class="vasen">

 

<%

 if(valittu_kurssi != null) {

   %>

   <h1>Valitun kurssin tiedot</h1>

   osallistujamäärä: <b><%= maara %></b> ilmoittautunutta <br />

   aloitus: <b><%= aloitus %></b><br />

   lopetus:<b><%= lopetus %></b><br />

   url: <b><%= uri %></b><br />

   tila: <b><%if(tila.equals("false")) {%>aktiivinen<%} if(tila.equals("true")) {%>poistettu opiskelijoilta<%}%> </b><br /><br />

   <%

   myTempResult2 = db.executeQuery("SELECT DISTINCT grouptypeid FROM eventgroup WHERE courseinstanceid = "+valittu_kurssi+" AND deleted = FALSE;");

   while(myTempResult2.next()) {

     ryhmaid = myTempResult2.getString("grouptypeid");

     %> <%@ include file="hae_ryhmat_listana.code" %> <%

   }

 }

 

%>

 

</div>

 

<div class="vasen">

 

<%

/*****************************************************************************************************

Now we fetch additional information about courseinstace.

If user has defined checkboxes we count selected ones, other way we just show what user has defined.

*****************************************************************************************************/

%>

 

<%

 String field_nimi = "", field_maara ="", fieldg_id="", fiildi="";

 if(valittu_kurssi != null && !valittu_kurssi.equals("")) {

   %><h1> </h1>

   <h4>Lisätiedot:</h4>

   <b>1. Valintaruudut</b>

   <table>

   <tr><th>nimi</th><th>valittujen määrä</th></tr><%

   myResult = db.executeQuery("SELECT DISTINCT fg.name, f.fieldgroupid, f.deleted FROM fieldgroup AS f, fieldgrouplang AS fg "+

                     "WHERE courseinstanceid = "+valittu_kurssi+" AND f.fieldgroupid = fg.fieldgroupid "+

                     "AND field.fieldgroupid = f.fieldgroupid AND field.fieldtypeid = 2 AND f.deleted = FALSE "+

                     "AND fg.deleted = FALSE;");

 

   while(myResult.next()) {

     %><tr><td><%= myResult.getString("name") %>: </td></tr><%

     fieldg_id = myResult.getString("fieldgroupid");

     myTempResult = db.executeQuery("SELECT DISTINCT ft.name, f.fieldid FROM field AS f, fieldtranslation AS ft "+

                        "WHERE f.fieldgroupid = "+fieldg_id+" AND f.fieldtypeid = 2 AND f.fieldid = ft.fieldid "+

                        "AND f.deleted = FALSE AND ft.deleted = FALSE;");

     while(myTempResult.next()) {

     fiildi = myTempResult.getString("fieldid");

     myTempResult2 = db.executeQuery("SELECT DISTINCT count(r.fieldid) AS maara FROM result AS r "+

                         "WHERE r.fieldid = "+fiildi+" AND r.deleted = FALSE;");

 

        while(myTempResult2.next())  {

       %><tr><td><%= myTempResult.getString("name") %></td><td><%= myTempResult2.getString("maara") %> kpl </td></tr><%

     }

     }

   }

 }

%>

</table>

 

<%

 if(valittu_kurssi != null && !valittu_kurssi.equals("")) {

   %><b>2. Lisäksi olet määritellyt seuraavat lisätiedot: </b><br /><%

   myResult = db.executeQuery("SELECT DISTINCT fg.name, f.fieldgroupid, f.deleted FROM fieldgroup AS f, fieldgrouplang AS fg "+

          "WHERE courseinstanceid = "+valittu_kurssi+" AND f.fieldgroupid = fg.fieldgroupid AND field.fieldgroupid = f.fieldgroupid "+

          "AND field.fieldtypeid <> 2 AND field.fieldtypeid < 5 AND f.deleted = FALSE AND fg.deleted = FALSE;");

   while(myResult.next()) {

     %><%= myResult.getString("name") %>: <%

     fieldg_id = myResult.getString("fieldgroupid");

     myTempResult = db.executeQuery("SELECT DISTINCT ft.name, f.fieldid FROM field AS f, fieldtranslation AS ft "+

                        "WHERE f.fieldgroupid = "+fieldg_id+" AND f.fieldtypeid <> 2 AND f.deleted = FALSE AND f.fieldid = ft.fieldid;");

     %><ul><%

     while(myTempResult.next()) {

     %><li><%= myTempResult.getString("name") %></li><%

     }

     %></ul><%

   }

  }

 

%>

 

</div>

 

3.12ope_lisaa_kurssi.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*,java.lang.*,

java.io.*, javax.servlet.*" session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

<jsp:useBean id="tools"                   scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                  scope="session"        class="kotkabeans.DB" />

<jsp:useBean id="autoNumber"              scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"           scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                   scope="session"        class="kotkabeans.Error" />

<jsp:useBean id="person"             scope="session"        class="kotkabeans.Person" />

<jsp:useBean id="usemodule"               scope="application"     class="kotkabeans.UseModule" />

                                     

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_aloitus

*         LANGUAGE:     jsp

*               DATE:          1.3.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*

*

*

****************************************************************************************************/

 

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_lisaa_kurssi.jsp");

}

else {

  user.setCurrentForm(request.getServletPath());

  user.setCurrentStatus("POST");

  user.setOpStartTime();

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myTempResult;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

%>

 

    

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title>

 

<link href="kotka2.css" rel="stylesheet" type="text/css" />

 

</head>

 

 

<body>

 

<!-- Muutettu -->

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="ope_lisaa_kurssi.code" %>

</div>

 

 

</body>

 

</html>

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

 

 

3.13 ope_lisaa_kurssi.code

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:             ope_lisaa_kurssi

*         LANGUAGE:     jsp

*               DATE:             10.4.01

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         UPDATES

****************************************************************************************************

*

*         LEVEL PITÄÄ MUUTTAA UUDEN TIETOKANNAN PÄIVITYKSESSÄ!!

*         RIVIEN LISÄÄMINEN PITÄÄ TEHDÄ!!

*

****************************************************************************************************/

%>

<%

  String valinta = "", valinta2 = "";

  String org="", min="", max="",aste="",oma_org="", url ="", alku_paivays="", loppu_paivays="", apu="";

  int pos = -1;

  String alku="", loppu="", alku_kello="", loppu_kello="";

  // aste tulee muuttumaan uudessa tietokannassa!

  int kurssi_id = -1;

  int riveja = 16;

  String koodi="";

  String valittu_kurssi = request.getParameter("kurssit");

  String vikaa = request.getParameter("vika");

  String talletus = request.getParameter("talletus");

  String muokkaa = request.getParameter("muokkaa");

 

  if(valittu_kurssi != null && !valittu_kurssi.equals("")) {

    // Haetaan tietokannasta tuodun kurssin tiedot,

    // jonka avulla voidaan täyttää alustavat tiedot uudelle kurssiesiintymälle.

    myTempResult = db.executeQuery("SELECT courseid FROM courseinstance WHERE courseinstanceid = "+valittu_kurssi+";"); 

    if(myTempResult.next()) {

      valinta = myTempResult.getString("courseid");

      // valinta muuttuu jossain ja jostain syystä, joten pitää käyttää toista muuttujaa apuna

      valinta2 = valinta;

      myResult = db.executeQuery("SELECT * FROM course WHERE courseid = "+valinta+";");

      if(myResult.next()) {

       koodi = myResult.getString("code");

     org = myResult.getString("organisationid");

     min = myResult.getString("mincredits");

     max = myResult.getString("maxcredits");

     aste = myResult.getString("level");

      }

    }

    myResult = db.executeQuery("SELECT startdate, enddate, URI FROM courseinstance WHERE courseinstanceid =  "+valittu_kurssi+";");

    if(myResult.next()) {

     alku_paivays = myResult.getString("startdate");

     loppu_paivays = myResult.getString("enddate");

 

     pos = alku_paivays.indexOf(" ");

     alku = alku_paivays.substring(0, pos);

     alku_kello = alku_paivays.substring( pos);

 

     pos = loppu_paivays.indexOf(" ");

     loppu = loppu_paivays.substring(0, pos);

     loppu_kello = loppu_paivays.substring( pos);

 

     url = myResult.getString("uri");

    }

  }

 

%>

 

<h1>Kurssiesiintymän lisääminen/muokkaaminen</h1>

 

<%

  if(vikaa != null && vikaa.compareTo("ei_kaikkia") == 0) {

    %><h2>Kaikki kentät pitää täyttää!</h2><%

  }

  if(vikaa != null && vikaa.compareTo("koodi") == 0) {

    %><h2>Kurssin koodi jo käytössä!</h2><%

  }

  if(talletus != null && talletus.compareTo("ok") == 0) {

    %><h2>Toiminto suoritettu!</h2><%

  }

  if(talletus != null && talletus.compareTo("alku_puuttuu") == 0) {

    %><h2>Kurssilta puuttui aloitusaika!!</h2><%

  }

  if(talletus != null && talletus.compareTo("kurssi_puuttuu") == 0) {

    %><h2>Kurssiesiintymälle pitää valita toinenkurssi pohjaksi!</h2><%

  }

%>  

 

<div class="vasen">

 

<form action="ope_lisaa_kurssi.jsp" method="get">

<%@ include file="esiintymat.code" %>

<input type="submit" value="hae tiedot" name="lisaa"/>

</form>

 

<form action="ope_lisaa_kurssi_2.jsp" method="get">

<input type="submit" value="lisaa uusi esiintymä" name="uusi_kurssi" />

<input type="submit" value="muokkaa" name="muokkaa" /><br />

<input type="hidden" value="<%= valinta2 %>" name="ku" />

<br />

 

Koodi: <%= koodi %><br />

Opintoviikot: <%= min %>/<%= max %><br />

Aste: <%= aste %><br />

Organisaatio: <%= org %><br />

 

aloitus pvm:    <input name="alku" type="text" value="<%= alku %>" />

   kello:       <input name="alku_kello" value="<%= alku_kello %>" /><br />

lopetus pvm:    <input name="loppu" type="text" value="<%= loppu %>" />

   kello:       <input name="loppu_kello" value="<%= loppu_kello %>" /><br />

www-sivu:       <input name="www" type="text" value="<%= url %>" size="50" /><br />

<%

    // PITÄISI OLLA HAKUEHTOMA MYÖS DELETED=FALSE?

    // JOS ON EI NÄY POISTETTUJEN TIEDOT

    // POISTETTU-TIEDOLLA EI TEHDÄ MITÄÄN

    myTempResult = db.executeQuery("SELECT DISTINCT grouptypeid, numberofoccurences AS occurences, eventgroupid, deleted FROM eventgroup WHERE courseinstanceid = "+valittu_kurssi+" ORDER BY deleted;");

 

    // VOI KUN SAISI KYSELYN TULOKSESTA MYÖS RIVIEN MÄÄRÄN!!

    int rivit = 500;

    String[] tyyppi_id = new String[rivit];

    String[] kerrat    = new String[rivit];

    String[] maara     = new String[rivit];

    String[] poistettu = new String[rivit];

    String groupid ="";

    int i = 0;

    while(myTempResult.next() && valittu_kurssi != null && !valittu_kurssi.equals("")) {

     tyyppi_id[i] = myTempResult.getString("grouptypeid");

        poistettu[i] = myTempResult.getString("deleted");

        groupid = myTempResult.getString("eventgroupid");

     // Määrä haetaan eventgroup-taulusta

     myResult = db.executeQuery("SELECT DISTINCT count(eventgroupid) AS maara FROM eventgroup WHERE grouptypeid = "+tyyppi_id[i]+" AND courseinstanceid = "+valittu_kurssi+" AND deleted = FALSE;");

        while(myResult.next()) {

       maara[i] = myResult.getString("maara");

        }

     // Todelliset toistokerrat haetaan event-taulusta

     myResult = db.executeQuery("SELECT DISTINCT count(eventid) AS maara FROM event WHERE eventgroupid = "+groupid+" AND deleted = FALSE;");

        while(myResult.next()) {

       kerrat[i] = myResult.getString("maara");

        }

     if(i > 0 && tyyppi_id[i].equals(tyyppi_id[i-1])) {

          if(Integer.parseInt(kerrat[i]) > Integer.parseInt(kerrat[i-1])) {

              kerrat[i-1] = kerrat[i];

       }

       maara[i] = "";

       tyyppi_id[i] ="";

       kerrat[i] = "";

       i--;

     }

     i++;

    }

%>

 

<%

// HAETAAN GROUPTYPE KANNASTA

// NIIDEN AVULLA LUODAAN TAULUKKO, JOHON TÄYTETÄÄN KURSSIN TAPAHTUMAT

int vaihtoehtoja = 0;

myResult = db.executeQuery("SELECT count(grouptypeid) AS grouptypeid FROM grouptypetranslation "+

                  "WHERE languageid = "+languageID+" AND deleted = FALSE;");

if(myResult.next()) { vaihtoehtoja = myResult.getInt("grouptypeid"); }

 

String[] group_name = new String[vaihtoehtoja];

String[] group_type = new String[vaihtoehtoja];

int mm=0;

 

myResult = db.executeQuery("SELECT grouptypeid, name FROM grouptypetranslation "+

                  "WHERE languageid = "+languageID+" AND deleted = FALSE;");

while(myResult.next()) {

  group_name[mm] = myResult.getString("name");

  group_type[mm] = myResult.getString("grouptypeid");

  mm++;

  // VARMISTETAAN VIELÄ, ETTEI MENE TAULUKOIDEN ULKOPUOLELLE

  if(mm >= vaihtoehtoja) { break; }

}

 

 // TAPAHTUMIA OVAT MM: LUENNOT, DEMOT JA OHJAUKSET

%>

<table>

  <tr><th>tapahtuma:</th><th>ryhmien määrä:</th><th>kerrat:</th></tr>

  <%

  String ryhma = "", ryhma_kerrat = "", ryhma_maara = "";

  String nimi_maara = "", nimi_kerrat = "", nimi_tyyppi = "";

  int apu_i = 0, oo;

  for(int o=0; o<mm; o++) {

    nimi_maara = "ryhma_maara" + apu_i;

    nimi_kerrat = "ryhma_kerrat" + apu_i;

    nimi_tyyppi = "ryhma_tyyppi" + apu_i;

    ryhma = "ryhma" + apu_i;

    apu_i++; 

    // KÄYDÄÄN LÄPI KANNASSA OLEVAT TIEDOT JA VERRATAAN LÖYTYYKÖ SIELTÄ NYT MENOSSA OLEVAA TAPAHTUMATYYPPIÄ

    // FORIA SEURAAVA IF ON TOIMINNALTAAN FOR-LAUSEEN SISÄLLÄ OLEVAN IF:N ELSE

    for(oo=0; oo<i; oo++) {

      if(tyyppi_id[oo] != null && tyyppi_id[oo].equals(group_type[o])) { %>

        <tr><td><input type="hidden" name="<%= ryhma %>" value= "<%= tyyppi_id[oo] %>" /><%= group_name[o] %></td>

        <td><input name="<%= nimi_maara %>" <% if(maara[oo] != null && !maara[oo].equals("")) {%> value = "<%= maara[oo] %>" <% } %> /></td>

        <td><input name="<%= nimi_kerrat %>" <% if(kerrat[oo] != null && !kerrat[oo].equals("")) {%> value = "<%= kerrat[oo] %>" <% } %> /></td>

        <% oo = i+10;

      } 

    }

    // oo KASVAA VIELÄ KERRAN FOR-LAUSEELLA, JOLLOIN VERRATTAVAN PITÄÄ OLLA YHTÄ SUUREMPI

    if(oo != i+11) { %>

    <tr><td><input type="hidden" name="<%= ryhma %>" value= "<%= group_type[o] %>" /><%= group_name[o] %></td>

    <td><input name="<%= nimi_maara %>" <% if(group_type[o].equals("4")) {%> value = "1" <% } %> /></td>

    <td><input name="<%= nimi_kerrat %>" <% if(group_type[o].equals("3")) {%> value = "1" <% } %> /></td>

    <% } %>

   </tr>  

  <% } %>

</table>   

 

<input type="submit" value="lisaa uusi esiintymä" name="uusi_kurssi" />

<input type="submit" value="muokkaa" name="muokkaa" /><br />

<% if(valittu_kurssi != null) { %>

<input name="kurssit" type="hidden" value="<%= valittu_kurssi %>" />

<% } %>

 

</form>

 

</div>

 

<div>

<h4>Lyhyt Ohje</h4>

<ul>

<li>Anna pvm muodossa: vvvv-kk-pp</li>

<li>Anna kello muodossa: hh:mm</li>

<li>Muista kirjoittaa linkin alkuun protokolla (http://)</li>

<li>Tapahtuma valikosta valitaan oikea tapahtuma</li>

<li>Määrä-sarakkeeseen tulee samanlaisten ryhmien määrä (eli montako demoryhmää halutaan)</li>

<li>Kerrat-sarakkeeseen tulee kertojen määrä</li>

<li>Tenttien lisääminen ja muokkaaminen suositellaan tehtäväksi Tentit-osiossa. <br />

    Tenteille voi laittaa ainoastaa yhden kerran!</li>

<li>Poistetut ovat listojen lopussa. </li>

</ul>

</div>

 

3.14ope_lisatiedot.jsp

<%@ page language="Java" import="kotkabeans.*, java.util.*,java.sql.*"

session="true"

    autoFlush="true" isThreadSafe="true" isErrorPage="false" errorPage="../shared/showError.jsp" %>

 

<jsp:useBean id="tools"                   scope="application"     class="kotkabeans.Tools" />

<jsp:useBean id="db"                  scope="session"        class="kotkabeans.DB" />

<jsp:useBean id="autonumber"              scope="application"     class="kotkabeans.AutoNumber" />

<jsp:useBean id="localize"           scope="application"     class="kotkabeans.Localize" />

<jsp:useBean id="mail"                scope="application"     class="kotkabeans.Mail" />

<jsp:useBean id="error"                   scope="session"        class="kotkabeans.Error" />

<jsp:useBean id="person"             scope="session"        class="kotkabeans.Person" />

<jsp:useBean id="usemodule"               scope="application"     class="kotkabeans.UseModule" />            

                                              

<%                                                               

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*         NAME:         ope_lisatiedot

*         LANGUAGE:     jsp

*               DATE:          4.5.02

*         AUTHOR:       Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*         ACTION

****************************************************************************************************

*         Sivulta näkee kurssille määritellyt lisätapahtumat,

*         joita voi myös muokata, lisätä ja yksittäisiä lomakkeita poistaa.

*         Koko systeemin "poisto" tapahtuu kurssit sivulta.

*

****************************************************************************************************/

            

User user =(User)session.getValue("user");

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_lisatiedot.jsp");

} 

else {

  // person parameters (read from user bean)

  int personID=user.getPersonID();

  int homeOrganisationID=user.getOrganisationID();  // 1 = JYU

  int languageID=user.getLanguageID();              // 1 = english, 2 = suomi

  int accessGroup=1;

 

  ResultSet myResult;                               // SQL query result

  ResultSet myResult2;                               // SQL query result

  ResultSet myResult3;                               // SQL query result

  ResultSet myResult4;                               // SQL query result

  ResultSet myTempResult;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

%>

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

  "http://validator.w3.org/sgml-lib/REC-xhtml1-20000126/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="fi">

 

<head>

 

<title>KurKi</title>

 

<link href="kotka2.css" rel="stylesheet" type="text/css">

 

</head>

 

<body>

 

<!-- Muutettu -->

 

<div class="leftbar">

<%@ include file="vasen_palkki.jsp" %>

</div>

 

<div class="navbar">

        <%@ include file="yla_palkki_kuvat.code" %>

</div>

 

<div class="main">

 <%@ include file="ope_lisatiedot.code" %>

</div>

 

</body>

 

</html>

 

 

<%

}

%>

 

 

<%

/***************************************************************************************************

*               PAGE DESCRIPTION

****************************************************************************************************

*

*               NAME:           ope_LISATIEDOT.code

*               LANGUAGE:       jsp

*               DATE:           30.4.01

*               AUTHOR:         Minna Lesonen, Jyväskylän yliopisto

*

****************************************************************************************************

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

****************************************************************************************************

 

****************************************************************************************************

*               TOIMINTA

****************************************************************************************************

****************************************************************************************************

 

****************************************************************************************************

*               UPDATES

****************************************************************************************************

*         TARKISTUS PITÄÄ KORJATA TOIMIMAAN OIKEIN!!

*

****************************************************************************************************/

%>

<%

 String valinta ="";

 

 // TYYPPEJÄ ON ERI TYYPPIEN MÄÄRÄ FIELDTYPELANG-TAULUSSA

 int tyyppejä = 15;

 String valittu_kurssi = request.getParameter("kurssit");

 String[] tyyppi_id = new String[tyyppejä];

 String[] tyyppi_nimi = new String[tyyppejä];

 int i = 0;

 

 String s_lom_kpl = request.getParameter("lom_kpl");

 String hae = request.getParameter("hae");

 String tee = request.getParameter("tee");