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

« back to all changes in this revision

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

  • Committer: me at id
  • Date: 2009-01-15 03:02:36 UTC
  • mto: This revision was merged to the branch mainline in revision 1090.
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:branches%2Fstorm:1150
ivle.makeuser.make_jail: Just take an ivle.database.User, rather than some
    attributes.

services/usrmgt-server: Give make_jail a User.

bin/ivle-remakeuser: Rewrite to use ivle.database.User.

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
default_type_icon = "txt.png";
56
56
 
57
57
/* Relative to IVLE root */
58
 
type_icons_path = "+media/ivle.webapp.core/images/mime";
59
 
type_icons_path_large = "+media/ivle.webapp.core/images/mime/large";
 
58
type_icons_path = "media/images/mime";
 
59
type_icons_path_large = "media/images/mime/large";
60
60
 
61
61
/* Mapping SVN status to icons, just the file's basename */
62
62
svn_icons = {
87
87
default_svn_icon = null;
88
88
default_svn_nice = "Unknown status";
89
89
 
90
 
svn_icons_path = "+media/ivle.webapp.core/images/svn";
 
90
svn_icons_path = "media/images/svn";
91
91
 
92
 
published_icon = "+media/ivle.webapp.core/images/interface/published.png";
 
92
published_icon = "media/images/interface/published.png";
93
93
 
94
94
/* List of MIME types considered "executable" by the system.
95
95
 * Executable files offer a "run" link, implying that the "serve"
144
144
            /* Check for action errors reported by the server, and report them
145
145
             * to the user */
146
146
            var error = response.getResponseHeader("X-IVLE-Action-Error");
147
 
            if (error != null && error != "")
 
147
            if (error != null)
148
148
                /* Note: This header (in particular) comes URI-encoded, to
149
149
                 * allow multi-line error messages. Decode */
150
150
                alert("Error: " + decodeURIComponent(error.toString()) + ".");
377
377
    upload_callback_count++;
378
378
    if (upload_callback_count >= 2)
379
379
    {
380
 
        myFrame = frames['upload_iframe'].document;
381
 
        data = myFrame.firstChild.childNodes[1].firstChild.firstChild.nodeValue;
382
 
        data = JSON.parse(data);
383
 
        if ('Error' in data)
384
 
            alert("Error: " + decodeURIComponent(data['Error']));
385
380
        document.getElementsByName('data')[0].value = '';
386
381
        refresh();
387
382
    }
550
545
    }
551
546
}
552
547
 
553
 
/* Updates the list of available actions based on files selected */
554
548
function update_actions()
555
549
{
556
550
    var file;
557
551
    var numsel = selected_files.length;
558
 
    var svn_selection = false;
559
 
    
560
 
    if (numsel > 0)
561
 
    {
562
 
        svn_selection = true;
563
 
        for (var i = 0; i < selected_files.length; i++){
564
 
            if (file_listing[selected_files[i]]["svnstatus"] == "unversioned")
565
 
            {
566
 
                svn_selection = false;        
567
 
            }
568
 
        }
569
 
    }
570
 
    
571
552
    if (numsel <= 1)
572
553
    {
573
554
        if (numsel == 0)
638
619
     */
639
620
    var run = document.getElementById("act_run");
640
621
     
641
 
    if (numsel <= 1 && !file.isdir && file.type == "text/x-python" 
642
 
            && current_file.svnstatus != 'revision')
 
622
    if (!file.isdir && file.type == "text/x-python" && numsel <= 1
 
623
        && current_file.svnstatus != 'revision')
643
624
    {
644
625
        if (numsel == 0)
645
626
        {
722
703
    var pubcond = numsel <= 1 && file.isdir;
723
704
    if (pubcond)
724
705
    {
 
706
        /* TODO: Work out of file is svn'd */
725
707
        /* If this dir is already published, call it "Unpublish" */
726
708
        if (file.published)
727
709
        {
728
710
            publish.setAttribute("value", "unpublish");
729
711
            publish.setAttribute("title" ,"Make it so this directory "
730
712
                + "can not be seen by anyone on the web");
731
 
            publish.firstChild.nodeValue = "Unpublish";
 
713
            publish.textContent = "Unpublish";
732
714
        } else {
733
715
            publish.setAttribute("value", "publish");
734
716
            publish.setAttribute("title","Make it so this directory "
735
717
                + "can be seen by anyone on the web");
736
 
            publish.firstChild.nodeValue = "Publish";
 
718
            publish.textContent = "Publish";
737
719
        }
738
720
    }
739
721
    set_action_state(["publish", "submit"], pubcond);
760
742
    /* Subversion actions */
761
743
    /* These are only useful if we are in a versioned directory and have some
762
744
     * files selected. */
763
 
    set_action_state(["svnadd"], numsel >= 1 && current_file.svnstatus);
764
 
    /* And these are only usefull is ALL the selected files are versioned */
765
 
    set_action_state(["svnremove", "svnrevert", "svncommit", "svncopy", 
766
 
            "svncut"], numsel >= 1 && current_file.svnstatus && svn_selection);
767
 
    
 
745
    set_action_state(["svnadd", "svnremove", "svnrevert", "svncommit"], numsel >= 1 && current_file.svnstatus);
 
746
 
768
747
    /* Diff, log and update only support one path at the moment, so we must
769
748
     * have 0 or 1 versioned files selected. If 0, the directory must be
770
749
     * versioned. */
781
760
    /* Log should be available for revisions as well. */
782
761
    set_action_state("svnlog", single_versioned_path, true);
783
762
 
784
 
    single_ivle_versioned_path = (
785
 
         (
786
 
          (numsel == 1 && (stat = file_listing[selected_files[0]])) ||
787
 
          (numsel == 0 && (stat = current_file))
788
 
         ) && stat.svnstatus != "unversioned"
789
 
           && stat.svnurl
790
 
           && stat.svnurl.substr(0, svn_base.length) == svn_base);
791
 
    set_action_state(["submit"], single_ivle_versioned_path);
792
 
 
793
763
    /* There is currently nothing on the More Actions menu of use
794
764
     * when the current file is not a directory. Hence, just remove
795
765
     * it entirely.
844
814
        action_unpublish(selected_files);
845
815
        break;
846
816
    case "share":
847
 
        window.open(public_app_path("~" + current_path, filename), 'share')
 
817
        //alert("Not yet implemented: Sharing files");
 
818
        window.open(public_app_path(serve_app, current_path, filename), 'share')
848
819
        break;
849
820
    case "submit":
850
 
        if (selected_files.length == 1)
851
 
            stat = file_listing[selected_files[0]];
852
 
        else
853
 
            stat = current_file;
854
 
        path = stat.svnurl.substr(svn_base.length);
855
 
 
856
 
        /* The working copy might not have an up-to-date version of the
857
 
         * directory. While submitting like this could yield unexpected
858
 
         * results, we should really submit the latest revision to minimise
859
 
         * terrible mistakes - so we run off and ask fileservice for the
860
 
         * latest revision.*/
861
 
        $.post(app_path(service_app, current_path),
862
 
            {"action": "svnrepostat", "path": path},
863
 
            function(result)
864
 
            {
865
 
                window.location = path_join(app_path('+submit'), path) + '?revision=' + result.svnrevision;
866
 
            },
867
 
            "json");
868
 
 
 
821
        // TODO
 
822
        alert("Not yet implemented: Submit");
869
823
        break;
870
824
    case "rename":
871
825
        action_rename(filename);
915
869
    case "svnlog":
916
870
        window.location = path_join(app_path('svnlog'), current_path, selected_files[0] || '');
917
871
        break;
918
 
    case "svncopy":
919
 
        action_svncopy(selected_files);
920
 
        break;
921
 
    case "svncut":
922
 
        action_svncut(selected_files);
923
 
        break;
924
872
    }
925
873
}
926
874