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");

 int lom_kpl = 0;

 if(s_lom_kpl != null && !s_lom_kpl.equals("")) { lom_kpl = Integer.parseInt(s_lom_kpl); }

 

 // HAKEE KAIKKI MAHDOLLISET TYYPIT, JOITA LOMAKKEEN KENTÄT VOIVAT OLLA

 //

 myResult = db.executeQuery("SELECT * FROM fieldtypelang WHERE languageid = "+languageID+" AND deleted = FALSE AND fieldtypeid < 5;");

 while(myResult.next()){

   tyyppi_id[i] = myResult.getString("fieldtypeid"); 

   tyyppi_nimi[i] = myResult.getString("name");

   i++;

 }

 

 

  String s_muutos = "";

  String b_muutos = "";

  String kappale = "kpl";      // PARAMETRIN NIMI

  String s_kpl ="";             // PARAMETRIN ARVO

  int kpl = 0;                // apumuuttuja yo:lle

  String lom_nimi = "lom_nimi"; // parametrin nimi

  String l_nimi = "";      // parametrin arvo

  String muutos = "muutos";

  String fg_id = "";      // fieldgroupin arvo

  String fg_deleted;        // ei oikeastaan edes tarvita, typerä tarkistus

 

  String ken_nimi = "k_nimi";     // parametrin nimi

  String k_nimi = "";       // parametrin arvo

  String k_id = "";       // parametrin arvo

  String k_oletus ="";      // parametrin arvo

  String k_type = "";       // parametrin arvo

 

  String apu ="";

  String poistettu = "";

 

  // tallennukseen tai muutokseen tarvittavia muuttujia:

  String lisays = request.getParameter("lisaa");

  String muokkaus = request.getParameter("muuta");

  String s_lomakkeet = request.getParameter("lom_kpl");

  int lomakkeet = 0;

  if(s_lomakkeet != null && !s_lomakkeet.equals("")) { lomakkeet = Integer.parseInt(s_lomakkeet); }

  String s_kentat = "";

  int kentat = 0;

  // TULOKSIA KÄYTETÄÄN TIETOKANNAN MUUTOKSEN TARKISTAMISEEN

  // TARKISTUS ON TÄLLÄ HETKELLÄ VAILLINAINEN, SIIHEN JÄÄ VIIMEISEN TILA!!

  int tulos1 = -1, tulos2 = -1, tulos3 = -1, tulos4 = -1, tulos5 = -1, tulos6 = -1, tulos7 = -1,tulos8 = -1;

  String uusi_fg = "", uusi_f ="", f_type = "", f_oletus="";

  String f_nimi ="", fg_nimi="", fg_muutos="", us_id="", fg_tuhoa="", fg_tuhoa_id="";

 

 // LISÄTÄÄN LISÄTAPAHTUMIA KURSSILLE TAI MUOKATAAN NIITÄ

 // POISTAMINEN TOIMII VAIN KURSSIT-SIVULLA POISTON YHTEYDESSÄ!!!!

 if((lisays != null && !lisays.equals("")) || (muokkaus != null && !muokkaus.equals(""))) {

   if(valittu_kurssi == null || valittu_kurssi.equals("")) { %>

     <font class="pun">Valitse kurssi!</font><br /> <%

   }

   else {

     for(int n=0; n<lomakkeet; n++) {

     uusi_fg = request.getParameter("fg_id" + n);

     fg_nimi = request.getParameter(lom_nimi + n);

     fg_muutos = request.getParameter(muutos + n);

     fg_tuhoa = request.getParameter("poista_lom" + n);

 

       // "DELETOIDAAN" TAPAHTUMIA   

       if(fg_tuhoa != null && !fg_tuhoa.equals("") && uusi_fg != null && !uusi_fg.equals("null") && !uusi_fg.equals("")) {

     db.executeUpdate("UPDATE fieldgroupprotection SET deleted = TRUE WHERE fieldgroupid ="+uusi_fg+";");

     db.executeUpdate("UPDATE fieldgrouplang SET deleted = TRUE WHERE fieldgroupid ="+uusi_fg+";");

     db.executeUpdate("UPDATE fieldgroup SET deleted = TRUE WHERE fieldgroupid ="+uusi_fg+";");

     myResult4 = db.executeQuery("SELECT fieldid FROM field WHERE fieldgroupid = "+uusi_fg+";");

     while(myResult4.next()) {

        fg_tuhoa_id = myResult4.getString("fieldid");

        db.executeUpdate("UPDATE fieldtranslation SET deleted = TRUE WHERE fieldid = "+fg_tuhoa_id+";");

     }

       }

 

       else {

     // MUOKATAAN LISATIETOJA

     if(muokkaus != null && !muokkaus.equals("") && uusi_fg != null && !uusi_fg.equals("") && !uusi_fg.equals("null")) {

       tulos1 = db.executeUpdate("UPDATE fieldgroup SET courseinstanceid = "+valittu_kurssi+" WHERE fieldgroupid = "+uusi_fg+";");

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

         tulos4 = db.executeUpdate("UPDATE fieldgrouplang SET name = '"+fg_nimi+"' WHERE fieldgroupid = "+uusi_fg+" AND languageid = "+languageID+";");

       }

     }

     // LISÄTÄÄN LISÄTIETOJA

     else {

       // LISÄTTÄESSÄ HAETAAN SEURAAVA ID:N ARVO Autonumberista.

       uusi_fg = Integer.toString(autonumber.getNumber("FieldGroup"));

       tulos1 = db.executeUpdate("INSERT INTO fieldgroup VALUES(FALSE, "+uusi_fg+", "+valittu_kurssi+");");

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

         tulos4 = db.executeUpdate("INSERT INTO fieldgrouplang VALUES(FALSE, "+uusi_fg+", "+languageID+", '"+fg_nimi+"');");

       }

     }

 

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

       // ENSIN "POISTETAAN" KAIKKI LIITTYVÄT TIEDOT fieldgroupprotectionista

       myResult3 = db.executeQuery("SELECT DISTINCT * FROM fieldgroupprotection WHERE fieldgroupid = "+uusi_fg+";");

       while(myResult3.next()) {

         us_id = myResult3.getString("usergroupid");

         tulos5 = db.executeUpdate("UPDATE fieldgroupprotection SET deleted = TRUE WHERE fieldgroupid = "+uusi_fg+" AND usergroupid = "+us_id+";");

       }

       // SITTEN LISÄTÄÄN NE SINNE

       if(fg_muutos != null && fg_muutos.equals("on")) {

         tulos6 = db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+uusi_fg+", 1);");

       }

       else {

         tulos6 = db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 1, "+uusi_fg+", 1);");

       }

       tulos7 = db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+uusi_fg+", 2);");

     }

 

     // LOMAKKEEN KENTTIEN MUOKKAUS/LISÄÄMINEN

     s_kentat = request.getParameter(kappale + n);

     if(s_kentat != null && !s_kentat.equals(""))   { kentat = Integer.parseInt(s_kentat); }

     int paikka = -1;

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

       uusi_f = request.getParameter("f_id" + n + "_" + k);

       f_type = request.getParameter("tyyppi" + n + "_" +k);

       paikka = f_type.indexOf(" ");

       if(paikka > 0) { f_type = f_type.substring(0, paikka); }

       f_nimi = request.getParameter(ken_nimi + n + "_" + k);

       f_oletus = request.getParameter("k_oletus" + n + "_" + k);

       if(muokkaus != null && !muokkaus.equals("") && uusi_f != null && !uusi_f.equals("")) {

         if(f_type != null && !f_type.equals("") && f_oletus != null && !f_oletus.equals("")) {

           tulos2 = db.executeUpdate("UPDATE field SET fieldgroupid = "+uusi_fg+", fieldtypeid = "+f_type+", defaultvalue = '"+f_oletus+"' WHERE fieldid = "+uusi_f+";");

         }

         else {

          tulos2 = db.executeUpdate("UPDATE field SET fieldgroupid = "+uusi_fg+" WHERE fieldid = "+uusi_f+";");

         }

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

          tulos3 = db.executeUpdate("UPDATE fieldtranslation SET name= '"+f_nimi+"' WHERE fieldid = "+uusi_f+";");

         }

       }

       else {

         uusi_f = Integer.toString(autonumber.getNumber("Field"));

         if(f_nimi != null && f_type != null && f_oletus != null && uusi_fg != null && !f_nimi.equals("")) {

           tulos2 = db.executeUpdate("INSERT INTO field VALUES(FALSE, "+uusi_f+", "+f_type+", "+uusi_fg+", '"+f_oletus+"',1);");

           tulos3 = db.executeUpdate("INSERT INTO fieldtranslation VALUES(FALSE, "+uusi_f+", "+languageID+", '"+f_nimi+"');");

         }

       }

     } // kenttien for-silmukan lopetus 

       } // tuhoamisen else-ehdon lopetus

     } // lomakkeen for-silmukan lopetus

   }

 if(tulos1 > 0) { %> Lomakkeen tapahtuma onnistui!<br /> <% }

 else          { %> <font class="pun"> Lomakkeen tapahtumat epäonnistuivat! </font><br /> <% }

 if(tulos4 > 0) { %> Lomakkeen nimien tapahtuma onnistui!<br /> <% }

 else          { %> <font class="pun"> Lomakkeen nimet epäonnistuivat! </font><br /> <% }

 if(tulos2 > 0) { %> Kenttien tapahtuma onnistui!<br /> <% }

 else          { %> <font class="pun"> Kenttien tapahtumat epäonnistuivat! </font><br /> <% }

 if(tulos3 > 0) { %> Kenttien nimien tapahtuma onnistui!<br /> <% }

 else          { %> <font class="pun"> Kenttien nimet epäonnistuivat! </font><br /> <% }

 if(tulos5 > 0) { %> Muutoksen salliminen oppilaille onnistui!<br /> <% }

 else          { %> <font class="pun"> Oppilaat eivät saa muuttaa yhtään kenttää! </font><br /> <% }

 }

 

 

 // HAETAAN VALITUN KURSSIN LOMAKEMÄÄRÄ

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

 /*   myResult = db.executeQuery("SELECT DISTINCT count(fieldgroupid) AS summa FROM fieldgroup "+

          "WHERE courseinstanceid = "+valittu_kurssi+" AND deleted = FALSE "+

          "AND fieldgroup.fieldgroupid = field.fieldgroupid AND field.fieldtypeid < 5;");

    if(myResult.next()) {

     s_lom_kpl = myResult.getString("summa");

     lom_kpl = Integer.parseInt(s_lom_kpl);

    }

    // TEHDÄÄN TÄLLAINEN VIRITYS, KUN YO. HAKU EI TOIMI OIKEIN, VAAN LASKEE MUKAAN KAIKKI FIELDIEN FIELDGROUPIT

    // TÄMÄ HAKEE TOSIAAN VAIN FIELDGROUPISTA

    // ALIMMAN PITÄISI TOIMIA OIKEIN!!

    lom_kpl = 0;

    myResult = db.executeQuery("SELECT DISTINCT * FROM fieldgroup "+

          "WHERE courseinstanceid = "+valittu_kurssi+" AND deleted = FALSE "+

          "AND fieldgroup.fieldgroupid = field.fieldgroupid AND field.fieldtypeid < 5;");

    while(myResult.next()) {

     s_lom_kpl = myResult.getString("fieldgroupid");

     lom_kpl++;

    }

 */

    myResult = db.executeQuery("SELECT count(fieldgroupid) AS summa FROM fieldgroup "+

          "WHERE courseinstanceid = "+valittu_kurssi+" AND deleted = FALSE AND deleted = FALSE "+

          "AND fieldgroup.fieldgroupid IN (SELECT field.fieldgroupid FROM Field WHERE field.fieldtypeid < 5 );");

    myResult.next();

    lom_kpl = myResult.getInt("summa");

 }

 

 

%>

 

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

 

<H3>Valitse kurssi:</H3>

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

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

<br /><br />

 

 

<input type="submit" value="lisaa tiedot" name="lisaa" />

<input type="submit" value="muuta tiedot" name="muuta" />

<br /><br />

 

Lomakkeiden määrä: <input type="text" name="lom_kpl" value="<%= lom_kpl %>" /><input type="submit" value="tee lomakkeet" name = "tee" />

<br /><br /><br />

<%

 

// HAETAAN KAIKKI VALITTUUN KURSSIIN KUULUVAT LOMAKKEET

 

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

    myResult = db.executeQuery("SELECT DISTINCT fl.name, f.fieldgroupid, f.deleted FROM fieldgroup AS f, fieldgrouplang AS fl "+

          "WHERE courseinstanceid = "+valittu_kurssi+" AND f.fieldgroupid = fl.fieldgroupid AND fl.languageid = "+languageID+" "+

          "AND f.deleted = FALSE AND fl.deleted = FALSE "+

          "AND f.fieldgroupid = field.fieldgroupid AND field.fieldtypeid < 5 ORDER BY f.deleted;"); 

  }

 

for(int n=0;n<lom_kpl; n++) {

    // JOS KURSSIIN LÖYTYI LOMAKKEITA, KÄYDÄÄN NE YKSITELLEN SILMUKAN MUKANA LÄPI

    if(myResult.next()) {

     l_nimi = myResult.getString("name");

     fg_id = myResult.getString("fieldgroupid");

     fg_deleted = myResult.getString("deleted");

    }

    else {

     l_nimi = request.getParameter(lom_nimi + n);

     fg_id = request.getParameter("fg_id" + n);

     fg_deleted = "";

    }

  // ENSIN MÄÄRITELLÄÄN LOMAKE

  // VARMISTETAAN VIELÄ, ETTÄ POISTETUISSA ON RASTI, JOS NIITÄ ON, (EI PITÄISI OLLA) %>

  <font class="pun">Poista lomake: <input type="checkbox" name="<%= "poista_lom" + n %>"

     <% if(fg_deleted.equals("true")) { %> checked="on"<% } %> /></font> <br />

  Lomakkeen nimi: <input type="text" value="<%= l_nimi %>" name="<%= lom_nimi + n %>" />

  <input type="hidden" name="<%= "fg_id" + n %>" value="<%= fg_id %>" />

  <%

  // HAETAAN TIETOKANNASTA TIETO, SAAKO OPPILAS MUUTTAA LOMAKKEEN TIETOJA

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

    myTempResult = db.executeQuery("SELECT DISTINCT accesstype FROM fieldgroupprotection WHERE fieldgroupid = "+fg_id+" AND usergroupid = 1 AND deleted= FALSE;");

    if(myTempResult.next()) { s_muutos = myTempResult.getString("accesstype");

     if(s_muutos.equals("2")) { b_muutos = "checked=on"; }

     else           { b_muutos = ""; }

    }

  }

  %>

  oppilas saa muuttaa: <input type="checkbox" name="<%= muutos + n %>" <%= b_muutos %> /><br />

  <%

  b_muutos = "";

    // HAETAAN LOMAKKEEN KENTTÄMÄÄRÄ, PARAMETRISTA TAI TIETOKANNASTA VALITAAN SUUREMPI ARVO

    // AND deleted=FALSE

    s_kpl = request.getParameter(kappale + n);   

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

      myTempResult = db.executeQuery("SELECT DISTINCT count(fieldgroupid) AS maara FROM field "+

               "WHERE fieldgroupid = "+fg_id+" AND fieldtypeid < 5;");

      if(myTempResult.next()) {

     apu = myTempResult.getString("maara");

     int apu_muunnos = 0;

     if(apu != null)    { apu_muunnos = Integer.parseInt(apu); }

     int s_kpl_muunnos = 0;

     if(s_kpl != null) { s_kpl_muunnos = Integer.parseInt(s_kpl); }

     if(s_kpl == null || apu_muunnos >= s_kpl_muunnos || (hae != null && !hae.equals(""))) {

       s_kpl = apu;

     }

      }

    }

    if(s_kpl != null && !s_kpl.equals("") && !s_kpl.equals("0"))  { kpl = Integer.parseInt(s_kpl); }

    else                                 { kpl = 0; s_kpl = "0"; }

     // if(s_kpl.equals("null") || s_kpl == null || s_kpl.equals("")) { s_kpl = "0";}

  %>

 

  Lomakkeen kenttämäärä: <input type="text" name="<%= kappale + n %>" value="<%= s_kpl %>" />

    <input type="submit" value="tee kentat" name="tee" />(kannassa: <%= apu %>)

  <br />

 

  <%

  // HAETAAN LOMAKKEEN KENTTIEN TIEDOT

  // AND f.deleted = FALSE AND fl.deleted = FALSE

  int typera = 0;

  myTempResult = null;

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

    myTempResult = db.executeQuery("SELECT DISTINCT fl.name AS name, f.fieldid AS id, f.fieldtypeid AS type, f.defaultvalue AS df "+

          "FROM field AS f, fieldtranslation AS fl WHERE fl.languageid = "+languageID+" AND f.fieldgroupid = "+fg_id+" "+

          "AND f.fieldid = fl.fieldid AND f.fieldtypeid < 5;");

  }

 

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

    // SITTEN LOMAKKEELLE TULEVAT KENTÄT

    k_nimi =""; k_id=""; k_oletus=""; k_type="";

    if(myTempResult.next()) {

      k_nimi = myTempResult.getString("name");

      k_id = myTempResult.getString("id");

      k_oletus = myTempResult.getString("df");

      k_type = myTempResult.getString("type");

    }

    %> Valinnan nimi: <input type="text" value="<%= k_nimi %>" name="<%= ken_nimi + n + "_" + k %>"/> 

    <input type="hidden" value="<%= k_id %>" name="<%= "f_id" + n + "_" + k %>" />

    , tyyppi: <select name="<%= "tyyppi" + n + "_" +k %>" >

    <%

      for(int j=0;j<i;j++){ %>

      <option value="<%=tyyppi_id[j]%>"

       <% if(!k_type.equals("") && tyyppi_id[j].equals(k_type)) { %>selected="selected"<% } %>><%=tyyppi_nimi[j]%></option><%

      }

    %>

    </select>

    ja oletusarvo: <input type="text" value="<%= k_oletus %>" name="<%= "k_oletus" + n + "_" + k %>"/><br /> <%

  } %>

  <br /> <%

}

%>

<input type="submit" value="lisaa tiedot" name="lisaa" />

<input type="submit" value="muuta tiedot" name="muuta" />

 

 

</form>

 

3.15ope_paivitys.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_paivitys

*         LANGUAGE:     jsp

*               DATE:          9.5.02

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

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*         ACTION

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

*        Opettaja valitsee päivitettävät kentät, joiden persusteella

*         luodaan taulukko, johon opettaja voi täyttää kentät.

*         TOIMINTA EDELLYTTÄÄ, ETTÄ OPISKELIJAN SIVULLA ALUSTETAAN RESULT-TAULU!!

*

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

 

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

*         UPDATES

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

*  

*

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

                                                                                                                             

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

 

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

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

 

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_paivitys.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_paivitys.code" %>

</div>

 

</body>

 

</html>

 

 

<%

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

 

 

3.16ope_paivitys.code

<%

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

*               PAGE DESCRIPTION

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

*

*               NAME:           ope_paivitys.code

*               LANGUAGE:       jsp

*               DATE:           9.5.01

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

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*               TOIMINTA

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

*         Opettaja voi päivittää oppilaiden tietoja kurssilta.

*

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

 

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

*               UPDATES

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

*

*

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

%>

<%

String eg_id="";

String e_id="";

String kirjain = "abcdefghijklmnopqrstuvwxyzåäö_";

int apu_kirjain = 0;

String access_ok="";

int laskin = 0;

 

 

%>

 

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

 

<H3>Valitse kurssi:</H3>

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

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

 

</form>

 

<div class="vasen"><%

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

 

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

  %>

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

  <input type="submit" name="paivita" value="Päivitä tiedot" />

 

  <h3>Valitse kentät:</h3>

  <table><tr>

  <%

  // LUENTOJA EI OTETA MUKAAN!

  myResult = db.executeQuery("SELECT DISTINCT eventgroupid, name FROM eventgroup "+

             "WHERE courseinstanceid = "+valittu_kurssi+" AND deleted = FALSE AND grouptypeid <> 4;");

 

  int para = 0;

  while(myResult.next()) {

    eg_id = myResult.getString("eventgroupid");

    %><td class="ylos"><%= myResult.getString("name") %><%

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

    laskin = 0;

    %><ul><%

    while(myResult2.next()) {

      laskin++;

      e_id = myResult2.getString("eventid");

      %><li><%=laskin%><input type="checkbox" name="<%= "e_"+ para %>" value="<%=e_id%>" /></li><%

      para++;

    }

    %></ul></td><%

  }

  %>

  </tr>

  </table>

 

  <h3>Valitse sukunimen alkukirjain:</h3>

  (ei yhtään valittu ja seuraava kohta tyhjä = kaikki)<br />

  <%

  while(apu_kirjain < kirjain.length()) {

    %><%=kirjain.charAt(apu_kirjain)%><input type="checkbox" name="<%=kirjain.charAt(apu_kirjain)%>" value="<%=kirjain.charAt(apu_kirjain)%>" /><%

    apu_kirjain++;

  }

  %>

 

  <h3>tai anna sukunimet (nimi, nimi):</h3>

  <%

    %><input type="text" name="nimet" size="100" /><br /><%

  %>

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

  <input type="hidden" name="kurssit" value="<%= valittu_kurssi %>" />

  <input type="submit" name="paivita" value="Päivitä tiedot" />

  </form>

  <hr /><%

}

else { %><h3>Ei kurssia valittuna!</h3><% } %>

</div>

 

3.17ope_raportit.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

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

*

*

*

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

 

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

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_raportit.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

%>

 

<?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_raportit.code" %>

</div>

 

</body>

 

</html>

 

<%

}

%>

 

3.18ope_raprtit.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 valinta = "";

%>

 

<h1>Raportit</h1>

 

<div class="vasen">

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

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

<input type="submit" name="hae kurssi" value="Hae kurssi"/>

</form>

</div>

<div>

<h3>Valitse raportti:</h3> 

Paina ensin hae kurssi ja valitse sitten linkki.

<ul>

<li><a href="raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=kurssilaiset" target="new">Kurssilaiset</a></li>

<li><a href="raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=kurssilaiset, sähköpostilista" target="new">Kurssilaiset, sähköpostilista</a></li>

<li><a href="raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=demot" target="new">Demot</a></li>

<li><a href="raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=tentit" target="new">Tentit</a></li>

<li><a href="raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=harkat" target="new">Harkat</a></li>

<li><a href="raportti.jsp?kurssit=<%=valittu_kurssi%>&raportit=omat" target="new">Omat</a></li>

</ul>

<div>

 

<div class="keskelle">

<b>Sama toiminta eri toteutuksella:</b>

 

<div class="vasen">

<form action="raportti.jsp" method="get" target="new">

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

</div>

<div>

<h3>Valitse raportti:</h3> 

 <input type="submit" value="Kurssilaiset" name="raportit" />

 <input type="submit" value="Kurssilaiset, sähköpostilista" name="raportit" />

 <input type="submit" value="Demopisteet" name="raportit" />

 <input type="submit" value="Tenttitulokset" name="raportit" />

 <input type="submit" value="Harjoitustyöt" name="raportit" />

 <br />

 <input type="submit" value="Omat tentit" name="raportit" />

 <input type="submit" value="Omat kurssit" name="raportit" />

 <br />

 <input type="submit" value="Oma raportti" name="raportit" />

</form>

</div>

</div>

3.19ope_tallenna_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" />

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

%>

 

<%

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

*               PAGE DESCRIPTION

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

*

*         NAME:         ope_tallenna_kurssi

*         LANGUAGE:     jsp

*               DATE:          19.4.02

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

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*         UPDATES

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

*

*         10.4.   PAKOLLINEN LISÄYS: KÄYTTÄJÄN OIKEUSTASON TARKISTUS!

*              VAIN OPETTJALLA ja YLLÄPIDOLLA OIKEUS TÄHÄN TOIMINTOON!!

*              TILANVARAUS TOIMINTO PUUTTUU!!

*

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

 

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

*         VIAT

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

*        

*         TALLETUKSEN TARKISTUS PUUTTEELLINEN, TOIMII VAIN SIINE PÄIN

*        

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

%>

 

<%

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 myResult2;                               // SQL query result

  ResultSet myResult5;                               // SQL query result

  ResultSet myResult6;                               // SQL query result

  ResultSet myTempResult;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

%>

 

<%

 

  String talletuksen_tila = "ei_ok";

  int e=0;

  int seuraava_id, seur;

  String loppu = "", www = "", alku_kello="", loppu_kello="";

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

  alku_kello = request.getParameter("alku_k");

  loppu = request.getParameter("loppu");

  loppu_kello = request.getParameter("loppu_k");

  www = request.getParameter("www");

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

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

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

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

  String eg_id ="", e_id ="";

  int j = 0;

  int eg_tila = 1, e_tila = 1, f_tila = 1, ft_tila= 1, fg_tila = 1, fgp_tila = 1, fgl_tila = 1, es_tila = 1;

  int g_type = 0;

  String gg_type = "", fg_id ="";

 

 

  // VAADITTUJEN TIETOJEN TÄYTTÄMISEN TARKISTUS PUUTTUU!!

  // TÄSSÄ TARKISTETAAN AINOASTAA ALOITUSAJAN ANTO

if(alku == null) {

  talletuksen_tila = "alku_puuttuu";

} 

else if(ku == null || kurssi == null ) {

  talletuksen_tila = "kurssi_puuttuu";

}

else {

 

  // HAETAAN TIETOKANNASTA SEURAAVAT VAPAAT ID:T

  int kurssi_id = autonumber.getNumber("CourseInstance");

  int eventgroupid = autonumber.getNumber("EventGroup");

  int eventid = autonumber.getNumber("Event");

  int fieldgroupid = autonumber.getNumber("FieldGroup");

  int fieldid = autonumber.getNumber("Field");

 

  if(ku != null) {

     myResult = db.executeQuery("SELECT courseid FROM courseinstance WHERE courseinstanceid="+ku+";");

     if(myResult.next()) { ku = myResult.getString("courseid"); }

     else { ku = "0"; }

  }

 

  // TALLETETAAN KURSSIESIINTYMÄ TIETOKANTAAN

  // TALLETUSTA VOI JATKAA VAIN, JOS KURSSIESIINTYMÄN TALLENNUS ONNISTUI !

  int tila = -1;

  // JOS KYSESSSÄ MUOKKAUS, AINOASTAAN PÄIVITETÄÄN KYSYTYT KENTÄT

  if(muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa") || muokkaa.equals("Muokkaus") || muokkaa.equals("Muokkaa")) {

    tila = db.executeUpdate("UPDATE courseinstance SET startdate = timestamp(date '"+alku+"', time '"+alku_kello+"'), enddate = timestamp(date '"+loppu+"', time '"+loppu_kello+"'), uri = '"+www+"' WHERE courseinstanceid = "+valittu_kurssi+";");

    // PÄIVITETÄÄN VALITUN KURSSIN TIEDOt MUUTTUJIIN UUSIEN SIJAAN, JOTTA FIELD-PUOLEN PÄIVITYS ONNISTUU

    kurssi_id = Integer.parseInt(valittu_kurssi);

  }

  // MUUTOIN LISÄTÄÄ UUSI KURSSIESIINTYMÄ

  else {

    // REKISTERÖINTI PÄIVIIN MENEE KYS. PÄIVÄ JA VUOSI 3000, STATUSID = 1, EVALUATIONFUNKTION=1(viim attr.)

    tila = db.executeUpdate("INSERT INTO courseinstance VALUES(FALSE,"+kurssi_id+", "+ku+", timestamp(date '"+alku+"', time '"+alku_kello+"'), timestamp(date '"+loppu+"', time '"+loppu_kello+"'), date('3000-01-01'), date('now'), 1, '"+www+"',1);");

    // KÄYTTÄJÄ PITÄÄ LISÄTÄ KURSSILLE OPETTAJAKSI

    // KOMMENTTEIHIN EI TULE MITÄÄN JA KURKIUSERGROUPID ON 3

    int parti_id = autonumber.getNumber("CourseParticipant");

    db.executeUpdate("INSERT INTO Courseparticipant VALUES(FALSE, "+parti_id+", "+personID+", "+kurssi_id+", 3, '', timestamp(timestamp 'now'));");

  }

if(tila > 0) {

  talletuksen_tila = "ok";

 

 

  // HAETAAN RYHMÄTYYPPIEN NIMET MONIKIELISTYSTAULUSTA, JOTTAA SAADAAN LÄHETETYT TIEDOT ESIIN

  myResult = db.executeQuery("SELECT name FROM grouptypetranslation WHERE languageid = "+languageID+";");

  String[] taulu_nimi = new String[50];

  while(myResult.next()) {

    taulu_nimi[j] = myResult.getString("name");

    j++;

  }

 

  // SEURAAVAKSI TALLENNTETAAN TAPAHTUMAT JA TAPAHTUMARYHMÄT

  // TILANVARAUSTA EI VIELÄ TALLENNETA

  String a="", b="";

  String r_nimi="", r_max="", r_min="", r_kerrat="", r_koodi="", r_maara="", r_poista="";

  String rr_alku="", rr_loppu="", rr_sali="", rr_alku_kello="", rr_loppu_kello="";

  String vara_aika1 ="", vara_kello1="", vara_kello2="";

  int luku, paikka = -2;

  int k=-1, kk=0, kkk=1, apukkk=1;

  int f_tallennus = -1, pois_taalta =  0;

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

  // SILMUKKAA KIERRENÄÄN NIIN KAUAN KUIN TAULUKOSSA (taulu_nimi[]) ON NIMIÄ

  // SILMUKAN LASKURIA PÄIVITETÄÄN VASTA, KUN KAIKKI RYHMÄÄN KUULUVAT KENTÄT ON KÄYTY LÄPI

  // KENTTIEN MÄÄRÄ TULEE PARAMETRINA (r_maara = request.getParameter(a + "ryhma_maara"))

  // ELI kk PÄIVITTYY VASTA KAIKKIEN KENTTIEN LÄPIKÄYNNIN JÄLKEEN

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

  while(kk < j) {

    k++;

    a = taulu_nimi[kk] + k;

    r_poista = request.getParameter(a + "poista");

    r_nimi = request.getParameter(a + "nimi");

    r_max = request.getParameter(a + "max");

    r_min = request.getParameter(a + "min");

    r_kerrat = request.getParameter(a + "ryhma_kerrat");

    r_maara = request.getParameter(a + "ryhma_maara");

    if(r_maara != null) { apukkk = Integer.parseInt(r_maara); }

    else                { apukkk = 1; }

    if(kkk++ >= apukkk && kk < j) { kk++; kkk = 1; k = -1;}

    r_koodi = request.getParameter(a + "ryhma");

    eg_id = request.getParameter(a + "ryhmaid");

 

    // JOS KÄYTTÄJÄ ON RUKSANNUN POISTA RUUDUN, SIIRRYTÄÄN SUORAAN POISTAMAAN LOMAKE JA SEN KENTÄT

    // MUUTOIN LISÄTÄÄN / MUOKATAAN TIEDOT

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

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

     int poisto = db.executeUpdate("UPDATE event SET deleted=TRUE WHERE eventgroupid = "+eg_id+";");

     poisto = db.executeUpdate("UPDATE eventgroup SET deleted=TRUE WHERE eventgroupid = "+eg_id+";");   

      }

    }

 

    else {

     // TARKISTETAAN, ETTÄ AINAKIN NIMI ON ANNETTU

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

 

      // JOS KÄYTTÄJÄ ON PAINANUT MUOKKAA-PAINIKETTA, AINOASTAAN PÄIVITETÄÄN TIEDOT

      if(eg_id != null && !eg_id.equals("") &&

         (muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa") || muokkaa.equals("Muokkaus") || muokkaa.equals("Muokkaa"))) {

     eg_tila = db.executeUpdate("UPDATE eventgroup SET minparticipants = "+r_min+", maxparticipants = "+r_max+", "+

            "name = '"+r_nimi+"', numberofoccurences = "+r_kerrat+", deleted = FALSE "+

            "WHERE eventgroupid = "+eg_id+";");

     // PÄIVITETÄÄN VALITUN KURSSIN TIEDOt MUUTTUJIIN UUSIEN SIJAAN, JOTTA FIELD-PUOLEN PÄIVITYS ONNISTUU

      eventgroupid = Integer.parseInt(eg_id);

      }

      // MUUTEN LISÄTÄÄN TIEDOT   

      else {   

     if(muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa") || muokkaa.equals("Muokkaus") || muokkaa.equals("Muokkaa"))

          { kurssi_id = Integer.parseInt(kurssi); }

     eg_tila = db.executeUpdate("INSERT INTO eventgroup "+

               "VALUES(FALSE, "+eventgroupid+", "+kurssi_id+", "+r_koodi+", "+r_min+", "+r_max+", '"+r_nimi+"', "+r_kerrat+")");

      }

 

      // HAETAAN RYHMÄTYYPPI, LUENNOILLE EI MÄÄRITELLÄ FIELD-PUOLELLE MITÄÄN

      myResult5 = db.executeQuery("SELECT grouptypeid FROM eventgroup WHERE eventgroupid = "+eventgroupid+";");

      if(myResult5.next()) {

          gg_type = myResult5.getString("grouptypeid");

           if(gg_type != null && !gg_type.equals("")) { g_type = Integer.parseInt(gg_type); g_type = g_type + 4; }

      }

      if(g_type != 8) {

        // KATSOTAAN, ONKO TIETOKANTAAN MÄÄRITELTY SOPIVIA FIELDGROUPPEJA

     // LASKETETAAN FIELDGROUPID, JOS == 0, NIITÄ EI OLE JA NE PITÄÄ LISÄTÄ

     myResult6 = db.executeQuery("SELECT count(fieldgroupid) AS onko FROM fieldgroup "+

              "WHERE courseinstanceid = "+kurssi_id+" AND deleted = FALSE "+

              "AND fieldgroup.fieldgroupid IN (SELECT field.fieldgroupid FROM Field WHERE field.fieldtypeid = "+g_type+" AND deleted = FALSE);");

     // HAETAAN FIELDGROUPID MAHDOLLISTA MUOKKAUSTA VARTEN

     myResult2 = db.executeQuery("SELECT fieldgroupid FROM fieldgroup WHERE courseinstanceid = "+kurssi_id+" AND deleted = FALSE "+

              "AND fieldgroup.fieldgroupid IN (SELECT field.fieldgroupid FROM Field WHERE field.fieldtypeid = "+g_type+" AND deleted = FALSE);"); 

 

           if(myResult6.next()) {

       f_tallennus = myResult6.getInt("onko");

       if(f_tallennus > 0 && myResult2.next())  { fg_id = myResult2.getString("fieldgroupid"); }

           }

 

           // LISÄTÄÄN FIELDGROUP VAIN, JOS SITÄ EI ENNESTÄÄN OLE

           if(f_tallennus == 0) {

       fg_tila = db.executeUpdate("INSERT INTO fieldgroup VALUES(FALSE, "+fieldgroupid+", "+kurssi_id+");");

       fgl_tila = db.executeUpdate("INSERT INTO fieldgrouplang VALUES(FALSE, "+fieldgroupid+", "+languageID+", '"+r_nimi+"');");

       fgp_tila = db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 1, "+fieldgroupid+", 1);");

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

       myResult5 = db.executeQuery("SELECT grouptypeid FROM eventgroup WHERE eventgroupid = "+eventgroupid+";");

       if(gg_type != null && !gg_type.equals("") && gg_type.equals("1")) {

         fgp_tila = db.executeUpdate("INSERT INTO fieldgroupprotection VALUES(FALSE, 2, "+fieldgroupid+", 2);");

       }

           }

           if(f_tallennus != 0 && fg_id != null && !fg_id.equals("") && (muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa")) && !fg_id.equals("")) {

       fgl_tila = db.executeUpdate("UPDATE fieldgrouplang SET name = '"+r_nimi+"' WHERE fieldgroupid = "+fg_id+" AND languageid = "+languageID+";");

           }

      }

    

 

     if(eg_tila > 0) {

        luku = Integer.parseInt(r_kerrat);

        // TENTTEJÄ VOI LISÄTÄ VAIN YHDEN

        if(r_koodi.equals("3") && luku > 1) { luku = 1; }

        // SILMUKKAA KIERRETÄÄN KERRAT-KOHDAN VERRAN

        for(int m=0; m<luku; m++) {

          rr_alku = request.getParameter(a + m + "alku");

          if(rr_alku != null && !rr_alku.equals(""))                     { vara_aika1 = rr_alku; }

          rr_alku_kello = request.getParameter(a + m + "alku_k");

          if(rr_alku_kello != null && !rr_alku_kello.equals(""))               { vara_kello1 = rr_alku_kello; }

          rr_loppu = request.getParameter(a + m + "loppu");

          rr_loppu_kello = request.getParameter(a + m + "loppu_k");

          if(rr_loppu_kello != null && !rr_loppu_kello.equals(""))         { vara_kello2 = rr_loppu_kello; }

          // MITÄ ARVOJA PITÄISI LAITTAA TÄYTTÄMÄTTÄ JÄÄNEISIIN KOHTIIN?

          // LOPPUPÄIVÄMÄÄRÄ = ALOITUSPÄIVÄMÄÄRÄ (ok)

          if(rr_loppu == null && rr_alku != null && !rr_alku.equals(""))                { rr_loppu = rr_alku; }

          if(rr_loppu.equals("") && rr_alku != null && !rr_alku.equals(""))              { rr_loppu = rr_alku; }

          // LOPPUAIKA = ALOITUSAIKA, JOS ALOITUSAIKA ON ANNETTU

          if(rr_loppu_kello == null && rr_alku_kello != null )                      { rr_loppu_kello = rr_alku_kello; }

          if(rr_loppu_kello.equals("") && rr_alku_kello != null && !rr_alku_kello.equals("")){ rr_loppu_kello = rr_alku_kello; }

          // JOS MOLEMMAT AJAT OVAT TYHJIÄ, HAETAAN MAHDOLLISESTI AIEMMIN ANNETUT AJAT

          if((rr_alku_kello == null || rr_alku_kello.equals("")) && !vara_kello1.equals(""))   { rr_alku_kello = vara_kello1; }

          if((rr_loppu_kello == null || rr_loppu_kello.equals("")) && !vara_kello2.equals("")) { rr_loppu_kello = vara_kello2; }

          rr_sali = request.getParameter(a + m + "sali"); // SALI EI MENE MIHINKÄÄN!!

          // HAETAAN TUODUISTA PARAMETREISTA ID, JOTTA SAADAAN HAETTUA MUOKATTAVAN TAPAHTUMAN TIEDOT

          e_id = request.getParameter(a + m + "ryhma_id");

          if(rr_alku != null && rr_alku_kello != null && !rr_alku.equals("") && !rr_alku_kello.equals("")) {

            // JOS ON EVENT-ID JA ON PAINETTU MUOKKAA:

            if((e_id != null && !e_id.equals("")) &&

               (muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa") || muokkaa.equals("Muokkaus") || muokkaa.equals("Muokkaa"))) {

              e_tila = db.executeUpdate("UPDATE event SET begintime = timestamp(date '"+rr_alku+"', time '"+rr_alku_kello+"'), endtime = timestamp(date '"+rr_loppu+"', time '"+rr_loppu_kello+"'), deleted = FALSE WHERE eventid = "+e_id+";");

            }

            else {

              // JOS ON PAINETTU MUOKKAA, MUTTA EVENT-ID:TÄ EI OLE, PITÄÄ KÄYTTÄÄ SILTI SAMAA EVENTGROUPID:TÄ

              // LISÄTTÄESSÄ KÄYTETÄÄN AUTONUMBERISTA SAATUA EVENTGROUPID:TÄ

              if(eg_id != null && !eg_id.equals("") && (muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa")))

                 { eventgroupid = Integer.parseInt(eg_id); }

              e_tila = db.executeUpdate("INSERT INTO event(deleted, eventid, eventgroupid, begintime, endtime) VALUES(FALSE, "+eventid+", "+eventgroupid+", timestamp(date '"+rr_alku+"', time '"+rr_alku_kello+"'), timestamp(date '"+rr_loppu+"', time '"+rr_loppu_kello+"'));");

              // SALIN VARAUS EI TOIMI, JOTEN eventspace-TAULUUN MENEE AINA 1!!!

              es_tila = db.executeUpdate("INSERT INTO eventspace(deleted, eventid, spaceid) VALUES(FALSE, "+eventid+", 1);");

              eventid = autonumber.getNumber("Event");

            }

            if(f_tallennus == 0 && g_type != 8) {

              // LISÄTÄÄN FIELDIT, JOS NIITÄ EI OLE, LUENNOILLE EI TÄÄLLÄKÄÄN MÄÄRITELLÄ MITÄÄN

              f_tila = db.executeUpdate("INSERT INTO field VALUES(FALSE, "+fieldid+", "+g_type+", "+fieldgroupid+", '0',"+m+")");     

              ft_tila = db.executeUpdate("INSERT INTO fieldtranslation VALUES(FALSE, "+fieldid+", 2, '"+ r_nimi + "/" + (m+1) +"')");  

              fieldid = autonumber.getNumber("Field");

            }

            if(f_tallennus != 0 && fg_id != null && (muokkaa.equals("muokkaus") || muokkaa.equals("muokkaa"))) {

              // FIELDIN NIMEÄ EI VOI MUUTTAA, KOSKA LASKENTAFUNKTIO MENEE VÄÄRIN

              // MITES NÄITÄ SITTEN MUOKATAAN, FIELDIN NIMEÄ EI TAIDA SAADA ULOS!!!

            }

          } // if pitkälle testille

        } // for eventeille ja fieldeille

     }  // if, grouppien tilan tarkistus

     eventgroupid = autonumber.getNumber("EventGroup");

     fieldgroupid = autonumber.getNumber("FieldGroup");

     }

    }

 

  } 

}

 

  if(!muokkaa.equals("muokkaus") && !muokkaa.equals("muokkaa")  || muokkaa.equals("Muokkaus") || muokkaa.equals("Muokkaa"))

     { valittu_kurssi = Integer.toString(kurssi_id); }

 

}

 

  if(eg_tila > 0 && e_tila > 0 ) { talletuksen_tila = "ok";  }

  else                    { talletuksen_tila = "ei_ok"; }

  response.sendRedirect("ope_lisaa_kurssi.jsp?talletus="+talletuksen_tila+"&kurssit="+valittu_kurssi+"");

 

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

 

3.20ope_tallenna_paivitys.jsp

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

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_paivitys

*         LANGUAGE:     jsp

*               DATE:          9.5.02

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

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*         ACTION

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

*        Opettaja valitsee päivitettävät kentät, joiden persusteella

*         luodaan taulukko, johon opettaja voi täyttää kentät.

*

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

 

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

*         UPDATES

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

*  

*

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

                                                                                                                             

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

 

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

 

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_paivitys.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;

 

 if(valittu_kurssi != null && usemodule.courseRight(personID, Integer.parseInt(valittu_kurssi)) > 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_tallenna_paivitys.code" %>

</div>

 

</body>

 

</html>

 

 

<%

 }

 else {

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

 }

 

  user.setOpEndTime();

  user.setCurrentStatus("IDLE");

  db.disconnect();

}

%>

 

 

3.21ope_tallenna_paivitys.code

<%

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

*               PAGE DESCRIPTION

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

*

*               NAME:           ope_tallenna_paivitys.code

*               LANGUAGE:       jsp

*               DATE:           13.5.01

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

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*               ACTION

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

*         This page saves new values to result  and removes the lock from database.

*        

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

 

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

*               UPDATES

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

*

*

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

%>

 

<%

String person_id = "", kentta_id = "", tulos = "", vanha_tulos="";

String vanha = "";

int pos, pos2, pos3, alku=0, loppu, pos4;

int tila = -1;

String apu, onnistuu="";

 

 

// NÄISTÄ VOI KÄYTTÄÄ VAIN TOISTA!!

// Dont'use!

// String query_string = request.getQueryString();

// java.io.BufferedReader buff =  request.getReader();

// java.io.BufferedReader buff = new java.io.BufferedReader(request.getReader());

// String query_string = buff.readLine();

 

String query_string = "";

Enumeration en = request.getParameterNames();

 

while(en.hasMoreElements()) {

  apu = (en.nextElement()).toString();

  if(!apu.equals("kurssit") && !apu.equals("tallenna")){

    query_string += apu +"=";

    query_string += request.getParameter(apu) + "&";

  }

}

 

apu="";

 

StringBuffer b = new StringBuffer(query_string);

int enkoodattu = -1;

int pituus = query_string.length();

 

// PARAMETERS HAVE BEEN ENCODED TO URL AND THEY HAVE TO BE DECODED

// IF YOU USE USE JAVA 1.2 OR LATER YOU CAN USE REPLACE INSTEAD OF DELETE AND INSERT

 

for(int pp=0; pp<pituus; pp++) {

  enkoodattu = query_string.indexOf("%2B");

  if(enkoodattu != -1) {  

    b.delete(enkoodattu, enkoodattu+3);

    b.insert(enkoodattu, " ");

    query_string = b.toString();

  }

  enkoodattu = -1;

  enkoodattu = query_string.indexOf("%253A");

  if(enkoodattu != -1) {

    b.delete(enkoodattu, enkoodattu+5);

    b.insert(enkoodattu, ":");

    query_string = b.toString();

  }

  pituus = query_string.length();

}

 

 

// HAETAAN ALKUUN OIKEA ALOITUSPAIKKA JA LOPPUU LOPETUSPAIKKA

// ope_paivitys_2.code encodes one result to url like: personid_fieldid--registered=value

pos = query_string.indexOf("&");

pos2 = query_string.indexOf("_");

if(pos < pos2) {

  alku = pos+1;

}

pos = query_string.lastIndexOf("_");

loppu = query_string.indexOf("&", pos);

 

// pos:ssa ON &-MERKINKOHTA

// pos2:ssa ON _-MERKIN KOHTA

// pos3:ssa ON ---MERKI KOHTA

// pos4:SSA ON =-MERKIN KOHTA

// JOS EI OO YHTÄÄN ANNETAAN LOPULLE VARMASTI PIENEMPI ARVO, JOLLOIN SILMUKKAA EI MENNÄ

if(pos2 == -1) { loppu = pos -2 ;}

pos = alku-1;

 

// LOCKING THE DATABASE IN PROBABLY UNNECCESSARY!

try {

db.executeUpdate("Begin work;");

%><h4>Tietokanta lukittu!</h4><%

 

 try {

  while(pos < loppu) {

    pos2 = query_string.indexOf("_", pos);

    person_id = query_string.substring(pos+1, pos2);

    pos3 = query_string.indexOf("--", pos2);

    kentta_id = query_string.substring(pos2+1, pos3);

    pos4 = query_string.indexOf("=", pos3);

    vanha_tulos = query_string.substring(pos3+2,pos4);

    pos = query_string.indexOf("&", pos4);

    tulos = query_string.substring(pos4+1, pos);

    try { Integer.parseInt(tulos); }

    catch (Exception ee) {

     %>Huono tulos: <%= ee %> <br />

     Tulosta ei muutettu! <%

     myResult = db.executeQuery("SELECT lastname, callname FROM person WHERE personid = "+person_id+";");

     if(myResult.next()) {

       %>Nimi: <%= myResult.getString("lastname")%> <%=myResult.getString("callname") %>,

            tulos: <%= tulos %><br /><%

     }

     tulos = vanha_tulos;

    }

      // ONLY SAVE, IF OLD VALUE AND NEW VALUE ARE DIFFERENT

      if(!vanha_tulos.equals(tulos)) {

         tila = db.executeUpdate("UPDATE result SET value = "+tulos+", person2id = "+personID+", registered = 'now' "+

                       "WHERE personid = "+person_id+" AND fieldid = "+kentta_id+" AND value = "+vanha_tulos+";");

      }

    if(tila < 1) { onnistuu += person_id + "|" + kentta_id + "||"; }

  }

 } catch (Exception e) {

   %><h4>Toiminnassa jotain vikaa ;)</h4>

   <p>

   Poikkeus: <%= e %><br />

   Ethän jättänyt tyhjiä tulos-kenttiä? Tyhjiksi jääneihin kenttiin ei muutettu tuloksia.

   </p><%

 }

 //********************************************************************************************************'

 // THIS LOCK IS SET BEFORE SAVING (ten lines up)

 // IT'S VERY IMPOSTANT TO REMOVE ALL LOCKS!!!

 // IF CHANGES FAILED THEY ALL ARE REMOVED

 //********************************************************************************************************'

 db.executeUpdate("Commit work;");

 %><h4>Tietokannan lukitus poistettu!</h4>

 <h4>Tallennus onnistui!</h4><%

 

} catch (Exception e) {

  db.executeUpdate("Commit work;");

  %><h4>Tietokannan lukitus poistettu!</h4>

  db.executeUpdate("Rollback");

  %><h4>Tallennus epäonnistui!</h4> Muutokset peruttu!<%

}

 

pos = alku-1;

%><h2>Nykyiset tulokset valituille kentille:</h2>

  <table><tr><th colspan="2">nimi</th></tr><tr><%

while(pos < loppu) {

    pos2 = query_string.indexOf("_", pos);

    person_id = query_string.substring(pos+1, pos2);

    pos3 = query_string.indexOf("--", pos2);

    kentta_id = query_string.substring(pos2+1, pos3);

    pos4 = query_string.indexOf("=", pos3);

    vanha_tulos = query_string.substring(pos3+2,pos4);

    pos = query_string.indexOf("&", pos4);

    tulos = query_string.substring(pos4+1, pos);

  myResult = db.executeQuery("SELECT lastname, callname, value FROM person AS p, result AS r "+

             "WHERE p.personid = "+person_id+" AND p.personid = r.personid AND r.fieldid = "+kentta_id+";");

  while(myResult.next()) {

    if(!vanha.equals(person_id)) {

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

    }

    %><td><%=myResult.getString("value")%></td><%

    vanha = person_id;

  }

}

%></table>

 

<p>

<a href="ope_kurssit.jsp?kurssit=<%=valittu_kurssi%>">Kurssien alkuun</a>

<a href="ope_paivitys.jsp?kurssit=<%=valittu_kurssi%>">Päivitä opiskelijoiden tietoja kurssilta.</a>

</p>

 

<h4>Vihje:</h4>

<p>

Jos haluat päivittää nopeasti uudelleen:

<ul>

<li>paina selaimen back-nappulaa</li>

<li>paina selaimen reload-nappulaa, jolloin saat päivittyneet tiedot esiin.</li>

<li>anna uudet arvot ja paina tallenna</li>

</ul>

</p>

 

3.22ope_tentit.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_tentit

*         LANGUAGE:     jsp

*               DATE:          5.5.01

*         AUTHOR:       Hannu Pekkanen, Jyväskylän yliopisto

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*

*

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

             

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

if(user == null) {

  response.sendRedirect("../portal/showLogin.jsp?return=../course/ope_tentit.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;

  ResultSet myTempResult2;

  ResultSet myTemp2Result;

  int updateFailure = 0;

  int allowContinue = 1;

 

  db.connect();                                     // connect to database

 

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

 String lisays = request.getParameter("lisaa");

 String muokkaus = request.getParameter("muokkaa");

 String lisatiedot = request.getParameter("lisa_tiedot");

 

%>

 

<?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_tentit.code" %>

</div>

 

</body>

 

</html>

 

 <%

 }

 %>

 

 

3.23ope_tentit.code

<%

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

*               PAGE DESCRIPTION

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

*

*               NAME:           ope_tentit.code

*               LANGUAGE:       jsp

*               DATE:           5.5.01

*               AUTHOR:         Hannu Pekkanen, Jyväskylän yliopisto

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

*

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

*               UPDATES

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

*

*

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

%>

<%

 String valittu_tentti = request.getParameter("tentti");

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

 String valittu_aktivoi = request.getParameter("aktivoi");

 String maara;

 String valinta;

 String aloitus = "", lopetus = "", uri = "", tila = "";

 String ryhmaid = "";

 String poisto_id ="";

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

 

String homeOrg = "";

String selectedValue = "0";

String selectedCourseName;

String selectedCourse;

String selectedDep = "";

String departmentID;

String department;

String paramDep = "";

String selectedSpaceName = "";

String spaceid = "";

 

%>

 

<h1>Tenttien muokkaus</h1>

 

 

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

 

<!--action="http://europa.it.jyu.fi/korppi/cgi-bin/paluu.cgi"-->

 

<span class="vasen">

<H3>Tenttisi:</H3>

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

</span>

 

<span class="vasen_tyhja_oikea">

<br /><br /><br />

 

<input type="submit" value="valitse tentti" name="valitse"/>

</form>

 

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

 

<input type="submit" value="lisää tentti" name="lisaa"/>

<input type="hidden" value="lisaa" name="valinta"/>

 

</form>

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

 

<input type="submit" value="muokkaa tenttiä" name="muokkaa"/>

<input type="hidden" value="lisaa" name="valinta"/>

</form>

 

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

 

<input type="submit" value="poista tentti" name="poista"/>

<input type="hidden" value="poista" name="valinta"/>

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

 

<%

if(toiminto != null && toiminto.equals("poista")) {

%>

<%= valittu_tentti %>

<%= toiminto %>

<%

  if(valittu_tentti != null)    {

                int poistettu_eg = db.executeUpdate("UPDATE eventgroup SET deleted = TRUE WHERE eventgroupid = "+valittu_tentti+" AND grouptypeid =3;");

                myResult = db.executeQuery("SELECT eventgroupid FROM eventgroup WHERE eventgroupid = "+valittu_tentti+" AND deleted = TRUE;");

               

               

                if(poistettu_eg > 0)    { %>

                  <font class="pun">Tentti poistettu!</font><br /> <%

                                        }

                else                    { %>

                  <font class="pun">Tenttiä ei poistettu!</font><br /> <%

                                        }

                                }

  else                  { %>

        <font class="pun">Et valinnut tenttiä!</font> <%

                        }                       

                                                }

%>

 

 

</form>

 

<!--<form method="get" action="./ope_tentit.jsp">

 

<input type="submit" value="Raportit" name="raportit"/>

</form>-->

<br /><br />

</span>

 

 

<span class="vasen_tyhja_vasen">

 

<%

 if(valittu_tentti != null) {

   myTempResult2 = db.executeQuery("SELECT grouptypeid FROM eventgroup WHERE eventgroupid = "+valittu_tentti+";");

   while(myTempResult2.next()) {

     ryhmaid = myTempResult2.getString("grouptypeid");

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

   }

 }

%>

<%

    if(toiminto != null && toiminto.equals("lisaa")) { %>

     <%@ include file="./tentit_hae_org.code" %><%      }%>

 

</span>

 

 

 

 

4         Ylläpitäjän sivut

Ylläpitäjän täytyy voida käyttää järjestelmän kaikkia mahdollisia toimintoja. Tällähetkellä ylläpitjän toiminnoista on toteutettu kurssien lisäys/moukkaus Course-tauluun sekä systeemiin sisäänkirjautuneiden käyttäjien tarkkailu.

1.20                            4.1                  AdminUsers.jsp

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

%>

 

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

<jsp:useBean id="monitor"         scope="application"     class="java.util.HashMap"/>

<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:     AdminUsers.jsp

*      LANGUAGE: JSP

*      DATE:     4.4.2001

*      AUTHOR:   Tuukka Tawast, Jyväskylän yliopisto

*

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

*                  COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

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

 

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

*                                  UPDATES  

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

*

*   4.4.2000

*   - First prototype

*

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

 

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

        if(user == null) {

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

        }

        else {

     user.setCurrentForm(request.getServletPath());

     user.setCurrentStatus("POST");

%>

<?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="./opettajan.css" type="text/css" media="screen" title="Kotka stylesheet" />

<title>KORPPI - Järjestelmän tämänhetkiset käyttäjät</title>

<META HTTP-EQUIV="Refresh" CONTENT="10" URL="http://ranchi.it.jyu.fi/kotka/course/AdminUsers.jsp">

</head>

<body>

<h1>Current system user's:</h1>

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

 

</div>

</body>

</html>

 

<%

     user.setCurrentStatus("IDLE");

     }

%>

 

1.21                            4.2                  pageAdminUsers.code

<%

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

*                             INCLUDE DESCRIPTION

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

*

*      NAME:     pageAdminlinkit.code

*      LANGUAGE: JSP

*      DATE:     4.4.2001

*      AUTHOR:   Tuukka Tawast, Jyväskylän yliopisto

*

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

*                  COPYRIGHT (C) KOTKA-PROJEKTIRYHMÄ

*             Limited rights granted. Please refer to license

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

 

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

*                                  UPDATES

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

*

* 4.4.2001

*   - First prototype

*

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

%>

 

<p>     

<br />

     <table border="3">

     <tr><th>User full name</th><th>Account</th><th>IP address</th><th>Page name</th><th>Status</th><th>Last op time</th><th>Session expires</th><th></th></tr>

<%      Set currentusers = monitor.keySet();

     for(Iterator i = currentusers.iterator(); i.hasNext();) {

     User temp =(User)i.next(); %>

     <%     temp.setLastOpTime(temp.getOpStartTime(), temp.getOpEndTime()); %>

     <tr><td><%= temp.getPerson() %></td><td><%= temp.getAccount() %></td><td><%= temp.getIpAddr() %></td><td><%= temp.getCurrentForm() %></td><td><%= temp.getcurrentStatus() %></td><td><%=

temp.getLastOpTime()%> ms</td></tr> <%    }   

%>

     </table>

<br />

</p>

</form>

 

 

1.22                            4.3                  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/lisaa_kurssi.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 rs;

  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>

 

<div class="leftbar">

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

</div>

 

<div class="navbar">

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

</div>

 

<div class="main">

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

</div>

 

</body>

 

</html>

 

<%

}

%>

 

1.23                            4.4                  lisaa_kurssi.code

<%

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

*               PAGE DESCRIPTION

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

*

*         NAME:         lisaa_kurssi

*         LANGUAGE:     jsp

*               DATE:          10.4.02

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

*

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

*               COPYRIGHT (C) KORPPI-PROJEKTIRYHMÄ

*               Limited rights granted. Please refer to license

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

 

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

*         UPDATES

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

*

*

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

%>

<%

  String valinta, vikaa, talletus, muokattu;

  String org="", min="", max="",aste="",oma_org="",valittu_aste="", valittu_aste_id="";

 

  String namefin = "";

  String nameng = "";

  String nameswe = "";

  String namedeu = "";

 

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

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

 

  rs = db.executeQuery("SELECT course.courseid,name, code FROM coursetranslation ,course WHERE course.deleted='f' AND coursetranslation.courseid=course.courseid AND coursetranslation.languageid="+languageID+" ORDER BY code;");

%>

<h3>Järjestelmässä olevat kurssit</h3>

<form action="lisaa_kurssi.jsp">

     <select name="kurssit" size=5>

<%     while(rs.next()) { %>

          <option value="<%= rs.getString("courseid") %>"><%= rs.getString("code") %> <%= rs.getString("name") %></option>

<%   }  %>

     </select>

     <input type="submit" value="Muokkaa valittua kurssia"/>

     <input type="hidden" name="muokkaus" value="1"/>

</form>

 

<form action="lisaa_kurssi.jsp">

     <input type="submit" value="Lisää uusi kurssi">

</form>

 

<%

  int kurssi_id = -1;

  String koodi="";

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

 

  if(valittu_kurssi != null) {

    // Haetaan tietokannasta tuodun kurssin id

    // jonka avulla voidaan täyttää alustavat tiedot uudelle kurssille.

      myResult = db.executeQuery("SELECT languageid,name FROM coursetranslation WHERE courseid="+valittu_kurssi+";");

      while(myResult.next()) {

          switch (Integer.parseInt(myResult.getString("languageid"))) {     

               case 1:

                    nameng = myResult.getString("name");

                    break;

               case 2:

                    namefin = myResult.getString("name");

                    break;

               case 3:

                    nameswe = myResult.getString("name");

                    break;

               case 4:

                    namedeu = myResult.getString("name");

                    break;

          }

      }

      myTempResult = db.executeQuery("SELECT * FROM course WHERE courseid = "+valittu_kurssi+";");

      if(myTempResult.next()) {

          koodi = myTempResult.getString("code");

          org = myTempResult.getString("organisationid");

          min = myTempResult.getString("mincredits");

          max = myTempResult.getString("maxcredits");

          aste = myTempResult.getString("levelid");

      }

    }

  myResult = db.executeQuery("SELECT homeorganisationid FROM person WHERE personid = "+personID+";");

  if(myResult.next()) {  oma_org = myResult.getString("homeorganisationid"); }

 

  if(org == null || org == "")        { org = oma_org; }

 

  vikaa = request.getParameter("vika");

  talletus = request.getParameter("talletus");

  muokattu = request.getParameter("muokattu");

%>

 

<h1>Kurssin 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>Uusi kurssi lisätty!</h2><%

  }

  if(muokattu != null && muokattu.equals("1")) {

   %><h2>Muokkaus onnistui!</h2> <%

  }

%>  

 

 

<form action="tallenna_kurssi.jsp">

 

<h4>Nimi kaikilla kielillä: </h4>

Suomeksi:     <input name="namefin" type="text" value="<%= namefin %>" /><br />

Englanniksi:     <input name="nameng" type="text" value="<%= nameng %>"/><br />

Ruotsiksi:     <input name="nameswe" type="text" value="<%= nameswe %>"/><br />

Saksaksi:     <input name="namedeu" type="text" value="<%= namedeu %>"/><br />

<h4>Muut tiedot:</h4>

koodi:        <input name="koodi" type="text" value="<%= koodi %>" /><br />

minimi ov:    <input name="minimi" type="text" value="<%= min %>" /><br />

maksimi ov:   <input name="maksimi" type="text" value="<%= max %>" /><br />

 

<%

       // haetaan kaikki tasot

     myResult = db.executeQuery("SELECT name, level.levelid FROM leveltranslation ,level WHERE level.deleted='f' AND leveltranslation.levelid=level.levelid AND leveltranslation.languageid="+languageID+";");

              

     if(valittu_kurssi != null) {

          myTempResult = db.executeQuery("SELECT name, levelid FROm leveltranslation WHERE languageid="+languageID+" AND levelid="+aste+";");

          if(myTempResult.next()) {

               valittu_aste = myTempResult.getString("name");

               valittu_aste_id = myTempResult.getString("levelid");

          }

     }   

         

%>

<%= valittu_aste %>

taso: <select name="level">

<%

                if(valittu_kurssi != null) {

%>

                        <option value="<%= valittu_aste_id %>" selected="selected"><%= valittu_aste %></option>

<%              }  %>

 

<%     while(myResult.next()) { 

          if(valittu_aste_id.equals(myResult.getString("levelid"))) continue;

%>

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

<%   }  %>

     </select>       

<br />

<%

  myResult = db.executeQuery("SELECT organisationid, name FROM organisationtranslation WHERE languageid ="+languageID+";");

%>

 

organisaatio: <select name="org" size="1">

<%

 while(myResult.next()) {

   valinta = myResult.getString("organisationid");

%>

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

  <% if(valinta.compareTo(org) == 0) {

        %> selected="selected" <%

     } %>

 >

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

 </option>

<%

 }

%>

</select><br />

 

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

<input type="reset" value="tyhjennä" name="tyhjenna" /><br />

<% if(valittu_kurssi != null) { %>

<input name="kurssit" type="hidden" value="<%= valittu_kurssi %>" /><br />

<% } %>

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

 

</form>

 

5        Yleisiä sivuja

Korppi-projektin sivut ovat kaikki jaettu samalla periaatteella kolmeen osaan. Sivun vasemmassa reunassa olevaan linkkilistaan, yläreunassa olevaan ylapalkkiin ja suurimman osan sivuista täyttävään tietoalueeseen. Tässä luvussa esitellään Sivupalkki sekä yläpalkki. Tietoalueen koodit käsittävät luvut 2,3 ja 4.

1.24                            5.1                       vasen_palkki.jsp

<%

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

*               INCLUDE DESCRIPTION

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

*

*               NAME:           vasen_palkki

*               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

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

* 

*

* 

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

 

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

%>

 

<a href="../portal/showMain.jsp">  

<img src="logo.jpg" alt="kotka-järjestelmä"  /></a>

 

 

<h3>Tässä osiossa:</h3>

<!-- <font class="isompi"> -->

 

<%

     if(usemodule.rightLevel(personID) > 1) {

%>

<a href="ope_opintosuoritukset.jsp?kurssit=<%= valittuna %>">Opintosuoritukset</a><br />

<a href="ope_kurssilaiset.jsp?kurssit=<%= valittuna %>">Kurssilaiset</a><br />

<a href="ope_raportit.jsp?kurssit=<%= valittuna %>">Raportit</a><br />

<a href="ope_kurssit.jsp?kurssit=<%= valittuna %>">Kurssit</a><br />

<a href="ope_tentit.jsp?kurssit=<%= valittuna %>">Tentit</a><br />

 

<%

     } else {

%>

<a href="opisKurssit.jsp">Kurssit</a><br />

<a href="opry_ilmo.jsp">Opetusryhmät</a><br />

<a href="opisTentit.jsp">Tentit</a><br />

<%

     }

%>

<!-- </font> -->

<hr>

<h3>Osiot:</h3>

 

<a href="../person/showMain.jsp">Henkilötiedot</a><br />

 <%

   if(usemodule.rightLevel(personID) > 1) {

 %>

<a href="ope_aloitus.jsp">Kurssikirjanpito</a><br />

 <%

   } else {

 %>

<a href="opisKurssit.jsp">Kurssikirjanpito</a><br />

 

 <%

   }

 %>

 

<%

        if(usemodule.rightLevel(personID) == 6) {

%> 

 

<h3>Järjestelmän ylläpito</h3>

<a target="new" href="AdminUsers.jsp">Current system User's</a><br />

<a href="lisaa_kurssi.jsp">Kurssien lisääminen/muokkaus</a><br />

 

<%

     }

%>

 

1.25                            5.2                       yla_palkki_kuvat.code

<div class="testi">

 <a href="../portal/showLogoutVerify.jsp?return=..<%= request.getServletPath() %>">

 <img src="lopeta.gif" alt="Lopetus"/></a>

<div class="testiteksti"><a href="../portal/showLogoutVerify.jsp?return=..<%= request.getServletPath() %>">Poistu</a></div>

</div>

 

<div class="empty">

 &nbsp;

</div>

 

<div class="testi">

  <a href="mailto:korppi@mit.jyu.fi">

 <img src="palaute.gif" alt="Palaute"/></a>

 <div class="testiteksti"><a href="mailto:korppi@mit.jyu.fi">Palaute</a></div>

</div>

 

<div class="empty">

 &nbsp;

</div>

 

<div class="testi">

 <a href="../portal/showSettings.jsp?return=..<%= request.getServletPath() %>">

 <img src="asetukset.gif" alt="Asetukset"/></a>

 <div class="testiteksti"><a href="../portal/showSettings.jsp?return=..<%= request.getServletPath() %>">Asetukset</a></div>

</div>

 

<div class="empty">

 &nbsp;

</div>

 

<div class="testi">

 <a href="../help/showHelpFI.html">

 <img src="apua.gif" alt="Apua"/></a>

 <div class="testiteksti"><a href="../help/showHelpFI.html">Opastus</a></div>

</div>

 

<div class="tiedot">

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

</div>

1.26                            5.3                      yla_palkki.code

<%      String organisation="";

     String accessright="";

       myResult = db.executeQuery("SELECT name from organisationtranslation WHERE languageid="+languageID+" AND organisationid="+homeOrganisationID+";");

     if(myResult.next()) {

          organisation = myResult.getString("name");

     }

     myTempResult = db.executeQuery("SELECT name FROM accessrightleveltranslation WHERE accessrightleveltranslation.accessrightlevelid = accessrightlevel.accessrightlevelid AND accessrightlevel.accessrightlevelid = accessright.accessrightlevelid AND accessright.personid="+personID+" AND languageid="+languageID+";");

     if(myTempResult.next()) {

          accessright = myTempResult.getString("name");

     }

%>

 

<p> <%= user.getPerson() %>, <%= organisation %> [<%= accessright %>]</p>

 

<p> Nykyinen sijaintisi: <a href="http://kotka.mit.jyu.fi">Kotka</a>/Kurssikirjanpito</p>

 

<!--

  <a href="../portal/showSettings.jsp?return=..<%= request.getServletPath() %>">

   <%= localize.getTranslation("ALL",2,user.getLanguageID()) %></a>

  <a href="mailto:tutawast@cc.jyu.fi" alt="sähköpostia ylläpitäjälle" hover="sähköpostia">Palaute</a>

  <a href="">Opastus</a>

-->