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

« back to all changes in this revision

Viewing changes to ivle/webapp/browser/__init__.py

ivle/webapp/browser#BrowserTemplate: Fix some formatting, and redirect properly
    if we don't have a path in the URL.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
        self.app_template = 'template.html'
45
45
        #XXX: Will hate me for this.
46
46
        self.appname = "files"
47
 
        
48
 
    
 
47
 
49
48
    def populate(self, req, ctx):
50
 
    
51
 
        if len(self.path) == 0:
 
49
        if not hasattr(self, 'path'):
52
50
            # If no path specified, default to the user's home directory
53
 
            redirectPath = util.make_path(os.path.join(THIS_APP,req.user.login))
 
51
            redirectPath = util.make_path(os.path.join('files', req.user.login))
54
52
            req.throw_redirect(util.make_path(redirectPath))
55
53
 
56
54
        # Set request attributes
91
89
        ctx['isdir'] = isdir
92
90
        self.gen_path(req, ctx)
93
91
        self.gen_actions(req, ctx)
94
 
        
 
92
 
95
93
        ctx['fileservice_action'] = util.make_path(os.path.join("fileservice", req.path))
96
94
        ctx['filename'] = cgi.escape(req.path)
97
95
 
98
 
      #TODO: Move all this logic into the template
 
96
    #TODO: Move all this logic into the template
99
97
    def gen_path(self, req, ctx):
100
98
 
101
99
        href_path = util.make_path('files')
102
100
        nav_path = ""
103
101
        revision = ivle.svn.revision_from_string(
104
102
                         req.get_fieldstorage().getfirst('r'))
105
 
        try: 
 
103
        try:
106
104
            revno = revision.number
107
105
        except:
108
106
            revno = None
109
 
          
 
107
 
110
108
        ctx['revno'] = revno
111
 
        
 
109
 
112
110
        # Create all of the paths
113
111
        pathlist = self.path.split("/")
114
112
        ctx['paths'] = []
116
114
            if path_seg == "":
117
115
                continue
118
116
            new_seg = {}
119
 
            
 
117
 
120
118
            nav_path = nav_path + path_seg
121
119
            href_path = href_path + '/' + path_seg
122
 
            
123
 
            new_seg['path'] = path_seg        
 
120
 
 
121
            new_seg['path'] = path_seg
124
122
            new_seg['nav_path'] = nav_path
125
123
            new_seg['href_path'] = href_path
126
124
            if revno is not None:
127
125
                new_seg['href_path'] += '?r=%d' % revno
128
 
            
 
126
 
129
127
            ctx['paths'].append(new_seg)
130
128
 
131
 
 
132
129
    def gen_actions(self, req, ctx):
133
130
        """
134
131
        Presents a set of links/buttons for the "actions1" row of the top bar.
167
164
            ('svnlog',      ['View Log',       'View the log of commits of the selected file']),
168
165
          ])
169
166
        ]
170
 
        
 
167
 
171
168
class Plugin(BasePlugin):
172
169
    """
173
170
    The Plugin class for the user plugin.
180
177
        ('files/*(path)', BrowserView),
181
178
        ('files/', BrowserView),
182
179
    ]
183