~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/media/browser/editor.js

  • Committer: mattgiuca
  • Date: 2008-06-13 12:51:29 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:767
Moved code to create user's jail version of conf.py from usrmgt server
    to makeuser.py, so it is performed during jail rebuilds as well as
    during initial creation, and refactored so it works during the rebuild.
    Now able to pull the svn password from the DB, set permissions, etc.
In short, Subversion now works in IVLE.
(And all you should have to do is run remakeallusers for it to work live on
the server).
Guys, I have to say this, I'm a bloody champ. :)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
saved_status = null;
 
2
 
 
3
function save_file()
 
4
{
 
5
    filename = document.getElementById("save_filename").value;
 
6
    data = editAreaLoader.getValue("editbox");
 
7
    /* Do NOT refresh the page contents (causes problems for editarea and is
 
8
     * unnecessary). */
 
9
    do_action("putfile", filename, {"path":".", "data":data}, null, true);
 
10
    saved_status.data = "Saved.";
 
11
}
 
12
 
 
13
function edit_text()
 
14
{
 
15
    saved_status.data = "Not saved.";
 
16
}
 
17
 
 
18
/** Presents the "editor heading" (the part with the save box)
 
19
 * inserting it into a given element at the front.
 
20
 */
 
21
function present_editorhead(elem, path, handler_type)
 
22
{
 
23
    var div = document.createElement("div");
 
24
    /* Insert as the head element */
 
25
    elem.insertBefore(div, elem.firstChild)
 
26
    div.setAttribute("id", "editorhead");
 
27
 
 
28
    /* Set up minimal interface */
 
29
    var p = dom_make_text_elem("p", "Path: ");
 
30
    var pathname = document.createElement("input");
 
31
    pathname.setAttribute("type", "text");
 
32
    pathname.setAttribute("size", "30");
 
33
    pathname.setAttribute("id", "save_filename");
 
34
    pathname.setAttribute("value", path);
 
35
    p.appendChild(pathname);
 
36
    var savebutton = document.createElement("input");
 
37
    savebutton.setAttribute("type", "button");
 
38
    savebutton.setAttribute("value", "Save");
 
39
    savebutton.setAttribute("onclick", "save_file()");
 
40
    p.appendChild(savebutton);
 
41
    var t = document.createTextNode(" ");
 
42
    p.appendChild(t);
 
43
    saved_status = document.createTextNode("Saved.");
 
44
    //p.appendChild(saved_status);
 
45
    div.appendChild(p);
 
46
 
 
47
    /* Print a warning message if this is not actually a text file.
 
48
     */
 
49
    if (handler_type != "text")
 
50
    {
 
51
        var warn = dom_make_text_elem("p",
 
52
            "Warning: You are editing a binary " +
 
53
            "file, which explains any strange characters you may see. If " +
 
54
            "you save this file, you could corrupt it.");
 
55
        div.appendChild(warn);
 
56
    }
 
57
}
 
58
 
 
59
/** Presents the text editor.
 
60
 */
 
61
function handle_text(path, text, handler_type)
 
62
{
 
63
    /* Create a textarea with the text in it
 
64
     * (The makings of a primitive editor).
 
65
     */
 
66
    var files = document.getElementById("filesbody");
 
67
    /* Put our UI at the top */
 
68
    present_editorhead(files, path, handler_type);
 
69
 
 
70
    var div = document.createElement("div");
 
71
    files.appendChild(div);
 
72
    var txt_elem = dom_make_text_elem("textarea",
 
73
        text.toString())
 
74
    div.appendChild(txt_elem);
 
75
    txt_elem.setAttribute("id", "editbox");
 
76
    txt_elem.setAttribute("onchange", "edit_text()");
 
77
    /* TODO: Make CSS height: 100% work */
 
78
    txt_elem.setAttribute("rows", "35");
 
79
 
 
80
    /* Load EditArea into the editbox */
 
81
    editAreaLoader.init({
 
82
        id : "editbox",
 
83
        syntax: "python",
 
84
        toolbar: "search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, highlight, |, help",
 
85
        start_highlight: true,
 
86
        allow_toggle: false,
 
87
        allow_resize: false,
 
88
        replace_tab_by_spaces: 4
 
89
    });
 
90
}
 
91