Annotation of doc/gutshtml/SessionTw1.html, revision 1.2
1.2 ! bowersj2 1: <html>
! 2: <head>
! 3: <meta name=Title content="Session Two: Spreadsheet and Messaging (Matthew)">
! 4: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
! 5: <link rel=Edit-Time-Data href="Session%20Tw1_files/editdata.mso">
! 6: <title>Session Two: Spreadsheet and Messaging (Matthew)</title>
! 7: <style><!--
! 8: .MsoHeading7
! 9: {font-size:16.0pt;
! 10: font-family:"Times New Roman";
! 11: color:black;}
! 12: .MsoHeader
! 13: {tab-stops:center 3.0in right 6.0in;
! 14: font-size:10.0pt;
! 15: font-family:"Times New Roman";}
! 16: .MsoBodyText
! 17: {line-height:24.0pt;
! 18: font-size:12.0pt;
! 19: font-family:"Times New Roman";
! 20: layout-grid-mode:line;}
! 21: .MsoBodyText2
! 22: {font-size:10.0pt;
! 23: font-family:"Times New Roman";
! 24: color:black;}
! 25: .Section1
! 26: {page:Section1;}
! 27: .Section2
! 28: {page:Section2;}
! 29: -->
! 30: </style>
! 31: </head>
! 32: <body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US>
! 33: <div class=Section1>
! 34: <h2>Session Two: Spreadsheet and Messaging (Matthew)</h2>
! 35: <h3><a name="_Toc421867092">Spreadsheets</a></h3>
! 36: <p class=MsoBodyText2>The spreadsheet presents data on student performance on
! 37: homework problems. Spreadsheets are handled by loncom/interface/lonspreadsheet.pm
! 38: and are completely web based. A person who has selected a student role will
! 39: access the spreadsheets using the [GRDS] button. A course coordinator is given
! 40: access via the [SPRS] button. Students are not able to see data on anyone's
! 41: performance but their own. Students are also not allowed to save spreadsheets.
! 42: </p>
! 43: <h3><a name="_Toc421867093">Spreadsheet Structure and Hierarchy</a></h3>
! 44: <p><span style='color:black'>The spreadsheets are laid out in the typical fashion,
! 45: with some limitations. There can only be 52 columns, addressed [A-Za-z]. There
! 46: may be any number of rows, but currently there do not exist facilities to
! 47: add rows other than those automatically generated. </span></p>
! 48: <p><span style='color:black'>There are three levels of spreadsheets, as illustrated
! 49: in <b>Fig. 2.2.1</b></span><span style='color:
! 50: black'>.</span><span style='font-size:16.0pt;color:black'> <img width=432 height=278
! 51: src="Session%20Tw1_files/image003.png" v:shapes="_x0000_i1025"> </span></p>
! 52: <p class=MsoHeading7><b>Fig. 2.1.1</b><span style='font-weight:normal'> Ð Spreadsheet
! 53: Hierarchy </span></p>
! 54: <p><span style='color:black'>The rightmost spreadsheets are the assessment spreadsheets.
! 55: The middle spreadsheets are the student spreadsheets. The left spreadsheet
! 56: is the course spreadsheet. </span></p>
! 57: <h3><a name="_Toc421867094">Export Rows</a></h3>
! 58: <p><span style='color:black'>The hierarchy of spreadsheets described above allows
! 59: data from the lower level spreadsheets (assessment and student) to be exported
! 60: up to the higher level spreadsheets (student and course, respectively). Row
! 61: 0 is the export row. Only the cells A0-Z0 are exported. Cells a0-z0 are not
! 62: exported and can be used as 'scratch' space for the results exported in A0-Z0.
! 63: </span></p>
! 64: <p><span style='color:black'>The export rows in the image are shown shaded in
! 65: figure 2.2.1. Where the exported rows appear in the student and course spreadsheets
! 66: is indicated by arrows. </span></p>
! 67: <h3><a name="_Toc421867095">Assessment Spreadsheet</a></h3>
! 68: <p><span style='color:black'>The assessment spreadsheet gives data on the students
! 69: performance on a specific resource in LON-CAPA (typically a *.problem resource).
! 70: Parameters such as the due date, the number of tries possible, the number
! 71: of attempts made, the correctness of the student solution, and any <parameter>
! 72: tags inserted in the resource will be shown. <b>Fig. 2.2.2</b></span><span style='color:black'>
! 73: shows an example of an assessment spreadsheet.</span></p>
! 74: <p> <img width=432 height=290
! 75: src="Session%20Tw1_files/image005.jpg" v:shapes="_x0000_i1026"> </p>
! 76: <p><span style='font-size:14.0pt'><b>Fig. 2.2.2</b></span><span
! 77: style='font-size:14.0pt'> Ð Example Spreadsheet on Assessment Level</span></p>
! 78: <h3><a name="_Toc421867096">Student Spreadsheet</a></h3>
! 79: <p class=MsoBodyText2>Each assessment spreadsheet exports a row into the student
! 80: spreadsheet. Fig 2.2.3 shows an example student spreadsheet. The student spreadsheet
! 81: exports a row to the course spreadsheet. </p>
! 82: <p class=MsoHeader><b>Fig. 2.2.3</b><span
! 83: style='font-weight:normal'> shows the next level up spreadsheet with the exported
! 84: data from this sheet.</span></p>
! 85: <p class=MsoHeader> <img width=431 height=240
! 86: src="Session%20Tw1_files/image007.jpg" v:shapes="_x0000_i1027"> </p>
! 87: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.3</b></span><span style='font-size:14.0pt'>
! 88: Ð Default Spreadsheet on Student Level</span></p>
! 89: <h3><a name="_Toc421867097">Course Spreadsheet</a></h3>
! 90: <p>The course spreadsheet gives a summary of each students performance in the
! 91: course as a whole. <b>Fig 2.2.4</b><span style='font-weight:
! 92: normal'> shows the default course spreadsheet. </span></p>
! 93: <p class=MsoHeader> <img width=432 height=143
! 94: src="Session%20Tw1_files/image009.jpg" v:shapes="_x0000_i1028"> </p>
! 95: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.4</b></span><span style='font-size:14.0pt'>
! 96: Ð Default Spreadsheet on Course Level</span></p>
! 97: <h3><a name="_Toc421867098">Spreadsheet definition</a></h3>
! 98: <p class=MsoBodyText2>The default spreadsheets are defined via xml. <b>Fig.
! 99: 2.2.5</b><span style='font-weight:normal'> shows a sample definition of a
! 100: spreadsheet. However, it is possible to work with spreadsheets and never edit
! 101: the xml for the spreadsheet itself. By modifying the contents of cells via
! 102: the web interface and saving the results, instructors can create as complicated
! 103: a spreadsheet as they like. It is now possible for users to upload spreadsheets
! 104: to the library server, publish them, and set them as the default sheets for
! 105: their course. </span></p>
! 106: <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
! 107: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 108: 8.0pt;font-family:"Courier New"'>[www@zaphod www]$ cat /home/httpd/html/res/adm/includes/default.assesscalc</span></p>
! 109: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 110: 8.0pt;font-family:"Courier New"'><field col=A row=0>[stores_0_solved]</field></span></p>
! 111: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 112: 8.0pt;font-family:"Courier New"'><field col=B row=0>'Tries:'</field></span></p>
! 113: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 114: 8.0pt;font-family:"Courier New"'><field col=C row=0>[stores_0_tries]</field></span></p>
! 115: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 116: 8.0pt;font-family:"Courier New"'><field col=D row=0>'Timestamp:'</field></span></p>
! 117: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 118: 8.0pt;font-family:"Courier New"'><field col=E row=0>[timestamp]</field></span></p>
! 119: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 120: 8.0pt;font-family:"Courier New"'><field col=F row=0>'Duedate:'</field></span></p>
! 121: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 122: 8.0pt;font-family:"Courier New"'><field col=G row=0>[parameter_0_duedate]</field></span></p>
! 123: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 124: 8.0pt;font-family:"Courier New"'><field col=W row=0>'Available Points:'</field></span></p>
! 125: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 126: 8.0pt;font-family:"Courier New"'><field col=X row=0>[parameter_0_weight]</field></span></p>
! 127: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 128: 8.0pt;font-family:"Courier New"'><field col=Y row=0>'Awarded Points:'</field></span></p>
! 129: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 130: 8.0pt;font-family:"Courier New"'><field col=Z row=0>[parameter_0_weight]*[stores_0_awarded]</field></span></p>
! 131: </div>
! 132: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.5</b></span><span style='font-size:14.0pt'>
! 133: Ð Default Spreadsheet on Assessment Level</span></p>
! 134: <h3><a name="_Toc421867099">Template Row</a></h3>
! 135: <p class=MsoBodyText2>The template row of a spreadsheets will make the contents
! 136: of a given column identical for each row. The contents of the template row
! 137: are shown verbatim, and not evaluated. Fig 2.2.6 shows the template row in
! 138: use. </p>
! 139: <p class=MsoHeader> <img width=432 height=215
! 140: src="Session%20Tw1_files/image011.jpg" v:shapes="_x0000_i1029"> </p>
! 141: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.7</b></span><span style='font-size:14.0pt'>
! 142: Ð Customized Spreadsheet on Student Level</span><b> </b><span style='font-size:8.0pt;font-weight:normal'>Shows
! 143: a course-customized student-level spreadsheet with many of these functions,
! 144: templates and wildcards in action. In the dialog window, </span><span
! 145: style='font-size:8.0pt;font-family:"Courier New"'>&SUM(Òd*Ó)</span><span
! 146: style='font-size:8.0pt'> is entered as the expression for cell H0, which will
! 147: add up all cells in column d. The template row is used to define expressions
! 148: for columns a, b, c, and d, where for b and d both the Ô#Õ wildcard and access
! 149: to the EXT function is used in order to multiply the respective X and Z cells
! 150: in each row with 1 or 0 depending on whether the value in G (the duedate)
! 151: is smaller or larger than the system time (Ò?Ó is the standard Perl choice
! 152: operator).</span></p>
! 153: <h3><a name="_Toc421867100">What goes in a cell</a></h3>
! 154: <p class=MsoBodyText2>A cell contains either parameter data (which cannot be
! 155: changed) or perl code. Additionally, cells can contain references to other
! 156: cells and these references can be passed as parameters to perl functions.
! 157: Parameters can be accessed via the cell they are stored in or by the parameter
! 158: name. </p>
! 159: <h3><a name="_Toc421867101">Parameter Access</a></h3>
! 160: <p class=MsoBodyText2>Parameters can be accessed by enclosing the parameter
! 161: name in square brackets. A new feature allows the accessing of parameters
! 162: by enclosing only enough information to lead to a unique parameter. "[part_0_duedate]"
! 163: will give the same value as "[duedate]" if there are no other parameters
! 164: which contain the string "duedate". </p>
! 165: <h3><a name="_Toc421867102">Addressing other cells</a></h3>
! 166: <p><span style='color:black'>Cells are specified by the letter-number combination
! 167: of their position in the table, for example "A5". There are also
! 168: wildcards '*' and '#' which are used in ranges and templates, respectively,
! 169: and symbolic names. </span></p>
! 170: <p><span style='color:black'>Valid ranges are for example "A5..C7"
! 171: which is the square between cells A5 to C7, as in A5, A6, A7, B5, etc. Also,
! 172: wildcards can be used, as in "A*" for column A, or "*5"
! 173: for row 5. For example, &SUM("d*") will add up all cells in
! 174: column d. The table below gives a brief summary of the range options. </span></p>
! 175: <p><span style='color:black'>*
! 176: all rows, all columns</span></p>
! 177: <p><span style='color:black'>B* all rows
! 178: in column B</span></p>
! 179: <p><span style='color:black'>*5 all
! 180: columns in row 5</span></p>
! 181: <p><span style='color:black'>C5..F25
! 182: all cells in the rectangle between C5 and F25</span></p>
! 183: <p>The template row allows the use of "A#", which will result in "A5"
! 184: in row 5, "A6" in row 6, etc.<span
! 185: style='font-size:16.0pt'> </span></p>
! 186: <p><b>Spreadsheet Functions </b></p>
! 187: <p class=MsoHeader><span style='color:black'>Many perl functions are available
! 188: in the spreadsheet (see "The Safe Environment" below). Additionally,
! 189: some spreadsheet specific functions have been defined as well. A complete
! 190: list is available by executing 'perldoc loncapa/loncom/interface/lonspreadsheet.pm'
! 191: on the command line. An abbreviated table appears in Fig. 2.2.7.</span></p>
! 192: <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
! 193: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 194: 11.0pt'>&NUM(<i>range</i></span><span style='font-size:11.0pt'>) Ð number
! 195: of non-empty cells in <i>range</i></span></p>
! 196: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 197: 11.0pt'>&BIN(<i>low, high, range</i></span><span style='font-size:11.0pt'>)
! 198: Ð number of non-empty cells in <i>range</i></span><span style='font-size:11.0pt'>
! 199: with values between <i>low</i></span><span style='font-size:11.0pt'> and
! 200: <i>high</i></span></p>
! 201: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 202: 11.0pt'>&SUM(<i>range</i></span><span style='font-size:11.0pt'>) Ð sum of
! 203: the non-empty cells in <i>range</i></span></p>
! 204: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 205: 11.0pt'>&MEAN(<i>range</i></span><span style='font-size:11.0pt'>) Ð mean value
! 206: of non-empty cells in <i>range</i></span></p>
! 207: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 208: 11.0pt'>&STDDEV(<i>range</i></span><span style='font-size:11.0pt'>) Ð standard
! 209: deviation of non-empty cells in <i>range</i></span></p>
! 210: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 211: 11.0pt'>&PROD(<i>range</i></span><span style='font-size:11.0pt'>) Ð product
! 212: of non-empty cells in <i>range</i></span></p>
! 213: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 214: 11.0pt'>&MAX(<i>range</i></span><span style='font-size:11.0pt'>) Ð maximum
! 215: value of non-empty cell in <i>range</i></span></p>
! 216: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 217: 11.0pt'>&MIN(<i>range</i></span><span style='font-size:11.0pt'>) Ð minimum
! 218: value of non-empty cells in <i>range</i></span></p>
! 219: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 220: 11.0pt'>&SUMMAX(<i>n ,range</i></span><span style='font-size:11.0pt'>) Ð sum
! 221: of the maximum <i>n</i></span><span style='font-size:11.0pt'> non-empty
! 222: cells in range</span></p>
! 223: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 224: 11.0pt'>&SUMMIN(<i>n, range</i></span><span style='font-size:11.0pt'>) Ð sum
! 225: of the minimum <i>n</i></span><span style='font-size:11.0pt'> non-empty
! 226: cells in range</span></p>
! 227: <p class=MsoHeader style='border:none;padding:0in;'><span style='font-size:
! 228: 11.0pt'>&EXT(<i>expression</i></span><span style='font-size:11.0pt'>) Ð access
! 229: to EXT function in </span><span style='font-size:11.0pt;font-family:
! 230: "Courier New"'>lonnet</span></p>
! 231: </div>
! 232: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.7</b></span><span style='font-size:14.0pt'>
! 233: Ð Available Functions in Spreadsheet</span></p>
! 234: <h3><a name="_Toc421867103">The Safe Environment</a></h3>
! 235: <p><span style='color:black'>The spreadsheet cells are evaluated in a "Safe"
! 236: environment. The module Safe.pm is included in the standard systemperl RPM
! 237: put out by the LON-CAPA developers, but is written by Tim Bunce and Malcolm
! 238: Beattie. If you execute 'perldoc Safe' you can read the documentation for
! 239: the module. </span></p>
! 240: <p><span style='color:black'>The Safe.pm module allows users to "compile
! 241: and execute code in restricted compartments". We use this to allow users
! 242: to implement in their spreadsheets a restricted set of perl functions, variables,
! 243: and operators. No one using the spreadsheet should ever need access to the
! 244: basic IO functions of Perl, for example, so these are not made available to
! 245: the users. </span></p>
! 246: <p><span style='color:black'>Each cell is evaluated within the same safe space,
! 247: so cells can actually contain function and declarations. </span></p>
! 248: <p><span style='color:black'>There is information the user may need which is
! 249: not contained in the cells of the spreadsheet. So we poke a hole in the safe
! 250: space using the Safe::Hole module. This lets us allow access to external information.
! 251: Obviously this needs to be done with some degree of caution. </span></p>
! 252: <p><span style='color:black'>At the beginning of lonspreadsheet.pm we have the
! 253: following code: </span></p>
! 254: <p><span style='font-family:"Courier New";color:black'>use Safe;</span></p>
! 255: <p><span style='font-family:"Courier New";color:black'>use Safe::Hole;</span></p>
! 256: <p><span style='color:black'>The function &initsheet, which is called when
! 257: a spreadsheet is created or modified, defines the safe space for the execution
! 258: of spreadsheet code: </span></p>
! 259: <p><span style='font-family:"Courier New";color:black'>sub initsheet {</span></p>
! 260: <p><span style='font-family:"Courier New";color:black'> my
! 261: $safeeval = new Safe(shift);</span></p>
! 262: <p><span style='font-family:"Courier New";color:black'> my
! 263: $safehole = new Safe::Hole;</span></p>
! 264: <p><span style='font-family:"Courier New";color:black'> $safeeval->permit("entereval");</span></p>
! 265: <p><span style='font-family:"Courier New";color:black'> $safeeval->permit(":base_math");</span></p>
! 266: <p><span style='font-family:"Courier New";color:black'> $safeeval->permit("sort");</span></p>
! 267: <p><span style='font-family:"Courier New";color:black'> $safeeval->deny(":base_io");</span></p>
! 268: <p><span style='font-family:"Courier New";color:black'> $safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT');</span></p>
! 269: <p><span style='font-family:"Courier New";color:black'> my
! 270: $code=<<'ENDDEFS';</span></p>
! 271: <p><span style='font-family:"Courier New";color:black'>.</span></p>
! 272: <p><span style='font-family:"Courier New";color:black'><i>functions and variables
! 273: needed in the safe space are defined here</i></span></p>
! 274: <p><span style='font-family:"Courier New";color:black'>.</span></p>
! 275: <p><span style='font-family:"Courier New";color:black'>ENDDEFS</span></p>
! 276: <p><span style='font-family:"Courier New";color:black'> $safeeval->reval($code);</span></p>
! 277: <p><span style='font-family:"Courier New";color:black'> return
! 278: $safeeval;</span></p>
! 279: <p><span style='font-family:"Courier New";color:black'>}</span></p>
! 280: <h3><a name="_Toc421867104">Change is coming</a></h3>
! 281: <p><span style='color:black'>Currently the spreadsheet is scheduled to undergo
! 282: major revisions by the end of the summer. The goal of these revisions is to
! 283: increase the speed and add some requested functionality. We hope to add: </span></p>
! 284: <p><span style='color:black'>*
! 285: Improved exporting of the spreadsheet date to client side spreadsheets </span></p>
! 286: <p><span style='color:black'>*
! 287: Exporting of spreadsheet xml - allowing users to save spreadsheets from their
! 288: classes for reuse. </span></p>
! 289: <p><span style='color:black'>*
! 290: Additional spreadsheet functions.</span></p>
! 291: <h3> </h3>
! 292: <h3><a name="_Toc421867105">Discussion</a></h3>
! 293: <p><span style='color:black'>loncapa/loncom/interface/lonfeedback.pm handles
! 294: feedback on resources. Feedback can be for course discussion of a resource
! 295: or to communicate with the author of the resource. In the latter case, a screenshot
! 296: of the resource and (if applicable) the students previous attempts to solve
! 297: the problem. </span></p>
! 298: <p><span style='color:black'>Course discussion messages appear at the bottom
! 299: of the resource being discussed. There are two types of attribution in course
! 300: discussion messages. Users may choose to have their LON-CAPA id shown to everyone
! 301: or they may have it shown only to instructors. Complete anonymity is not an
! 302: option. If the users choose to hide their LON-CAPA id (an 'anonymous' message),
! 303: they can set the name given in the [PREF] page. </span></p>
! 304: <p><span style='color:black'><b>Figures 2.2.8</b></span><span
! 305: style='color:black'> through <b>2.2.10</b></span><span style='color:black'> show
! 306: a course discussion feedback cycle. </span></p>
! 307: <p><span style='color:black'> <img width=256 height=63
! 308: src="Session%20Tw1_files/image013.jpg" v:shapes="_x0000_i1030"> </span></p>
! 309: <p><span style='color:black'><b>Fig 2.2.8</b></span><span
! 310: style='color:black'> - A Simple Resource</span></p>
! 311: <p><span style='color:black'> <img width=301 height=240
! 312: src="Session%20Tw1_files/image015.jpg" v:shapes="_x0000_i1031"> </span></p>
! 313: <p><span style='color:black'><b>Fig. 2.2.9</b></span><span
! 314: style='color:black'> Composing Discussion Feedback </span></p>
! 315: <p><span style='color:black'> <img width=292 height=170
! 316: src="Session%20Tw1_files/image017.jpg" v:shapes="_x0000_i1032"> </span></p>
! 317: <p><span style='color:black'><b>Fig 2.2.10</b></span><span
! 318: style='color:black'> The Resource with Anonymous and Non-anonymous Discussion</span></p>
! 319: <h3><a name="_Toc421867106">Messaging</a></h3>
! 320: </div>
! 321: <h1><span style='font-size:10.0pt;font-family:"Courier New";font-weight:normal'> </span></h1>
! 322: <p><span style='color:black'>loncapa/loncom/interface/lonmsg.pm provides functions
! 323: for sending users messages. All messaging is currently done via lonmsg.pm. The
! 324: following subroutines handle the sending of various types of messages: </span></p>
! 325: <p><span style='font-family:"Courier New";color:black'>author_res_msg </span></p>
! 326: <p><span style='color:black'>Send a message to the author of a resource. </span></p>
! 327: <p><span style='font-family:"Courier New";color:black'>user_crit_msg </span></p>
! 328: <p><span style='color:black'>Send a critical message to a user. Critical messages
! 329: require the user to acknowledge receipt before any other action in LON-CAPA
! 330: can be taken. </span></p>
! 331: <p><span style='font-family:"Courier New";color:black'>user_crit_received </span></p>
! 332: <p><span style='color:black'>Notify the sender of a critical message that the
! 333: message has been received. </span></p>
! 334: <p><span style='font-family:"Courier New";color:black'>user_normal_msg </span></p>
! 335: <p><span style='color:black'>Send a non-critical message to a user. </span></p>
! 336: <p><span style='font-family:"Courier New";color:black'>statuschange </span></p>
! 337: <p><span style='color:black'>Change the status of a message (read, replied, forwarded,
! 338: etc) </span></p>
! 339: <p><span style='color:black'>The lonmsg::handler takes care of the display and
! 340: sending of messages. If you have the time, communicate with yourself! Note:
! 341: Critical messages are displayed on login to LON-CAPA. Some message types are
! 342: only available for course coordinators. </span></p>
! 343: <h3><span style='color:black'> </span></h3>
! 344: <h3><a name="_Toc421867107">Resource Feedback</a></h3>
! 345: <p><img border=0 width=432 height=304 id="_x0000_i1028"
! 346: src="handout_files/image004.jpg"></p>
! 347: <p class=MsoHeader><span style='font-size:14.0pt'><b>Fig. 2.2.11</b></span><span style='font-size:14.0pt'>
! 348: Ð Example of a Feedback</span></p>
! 349: <br
! 350: clear=ALL style='page-break-before:always;'>
! 351: <div class=Section2> </div>
! 352: </body>
! 353: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>