Ejemplo n.º 1
0
    def modif(self,path,data,msg=None,binary=False):
        self.log.debug("MODIF")
        path=format_path(path)
        if path=='':
            #la racine n'est pas un fichier.
            return
        pere=path_pere(path)
        name=name_from_path(path)

        fsreptmp=self.prepare_fstmp(pere)

        if binary:
            acces='wb'
        else:
            acces='w'

        f=open('%s/%s' % (fsreptmp,name),acces)
        f.write(data)
        f.close()

        actions=[]
        message=msg
        if not message:
            message = "Modifie fichier %s " % path
        tmpcommit=fsreptmp+'/'+name
        new_rev=self.commit(actions,message,tmpcommit,fsreptmp)

        return new_rev
Ejemplo n.º 2
0
    def edit_ok(self):

        if not check_edit(self.datas,self.socket):
            return
        baseurl=self.datas.url_base
        if self.path!='/':
            baseurl+=self.path

        url=self.socket.input_text_value('urlgalerie')
        titre=self.socket.input_text_value('titre')
        textnav=self.socket.input_text_value('textnav')
        description=self.socket.input_text_value('description')

        name=name_from_path(self.path)

        if self.id!=0:
            redirecturl=baseurl
            if url!=name:
                self.path='/'.join(baseurl.split('/')[:-1])+'/'+url
                redirecturl=self.path
                self.rename({"all":name})
                
        self.set_propriete("titre",titre)
        self.set_propriete("textnav",textnav)
        self.set_propriete("description",description)

        self.socket.redirection_http(redirecturl, "Action Ok")
Ejemplo n.º 3
0
    def edit_form(self):
        _=self.datas._
        baseurl=self.datas.url_base
        if self.path!='/':
            baseurl+=self.path
        #todo multilangue.
        titre=self.get_propriete('titre','')
        textnav=self.get_propriete('textnav','')
        description=self.get_propriete('description','')

        name=name_from_path(self.path)
        urlgalerie=""
        if self.id!=0:
            urlgalerie="""%s : <input type="text" name="urlgalerie" value="%s"/><br />""" % (_('Url'),name)
        template=u"""
%s :
<form action="%s/edit/ok" method="POST">
%s 
%s : <input type="text" name="titre" value="%s"/><br />
%s : <input type="text" name="textnav" value="%s"/><br />
%s : <textarea name="description" class="petit">%s</textarea>
<input type="submit" value="%s" />
</form>
""" % (_('Editer les proprietes de la galerie'),baseurl,urlgalerie,_('Titre'),titre,_('Text Nav'),textnav,_('Description'),description,_('Valider'))
        self.socket.send_datas(template)
Ejemplo n.º 4
0
def edit_page_form(self):
    _=self.datas._
    if not check_edit(self.datas,self.socket):
        return

    inputslang=u''
    name=name_from_path(self.path)
    urllangdefault=name

    for code in self.config.langues:
        l=tablangtrad[code][self.datas.my_session.langue]
    
        inputslang+=u"<br /><br />%s %s : <br />" % (_('Information en '),l) 

        if self.id!=0:
            try:
                urllang=self.glob.objets[self.id]['names'][code]
            except:
                urllang=''
            inputslang+=u"""<div class="label">%s</div> : <input type="text" name="urlpage_%s" value="%s"/>
                            <br />""" % (_('Identifiant pour url '), code, urllang )
            textnav=self.get_propriete('textnav_%s' % code,'')
            if type(textnav)==type(''):
                textnav=stou(textnav)
            inputslang+=u"""<div class="label">%s</div> : <input type="text" name="textnav_%s" value="%s"/>
                            <br />""" % (_('Text Navigation'),code,textnav )


        titre=stou(self.get_propriete('titre_%s' % code,''))

        inputslang+=u"""
              <div class="label">%s</div> : <input type="text" name="titrepage_%s" value="%s"/><br />
              """ % ( _('Titre'),code,titre)

    template=u"""
%s :
<form action="%s/edit_page" method="POST" id="panneauform" >
%s 
<div id="div_valid" class="invisible">
<input type="button" value="%s" onClick="document.forms.panneauform.submit();">
</div>
</form>
""" % (_('Editer les proprietes de la page'), self.path,inputslang,_('Valider'))
    self.socket.send_datas(template)
Ejemplo n.º 5
0
 def affiche(self):
     _=self.datas._
     self.socket.send_datas('<body><h1>'+_('SERVEUR HTTPDtekio : Repertoires et Fichiers Publics')+'</h1>\n')
     pathpere=path_pere(self.path_entier)
     parent=name_from_path(pathpere)
     if not parent:
         parent='Racine'
     self.socket.send_datas(_('Retour')+' : <a href="%s">%s</a> <br />' % (pathpere,parent))
     self.socket.send_datas('<br />')
     self.socket.send_datas(_("Contenu du Repertoire Actuel")+" : %s <br />" % self.path_entier)
     for elem in self.fs_svn.listdir(self.path_entier):
         path_obj="%s/%s" % (self.path_entier,elem)
         urlobj="%s/%s" % (self.datas.url_base,path_obj)
         admins_action=''
         if check_admin(self.datas,self.socket):
             typemime=mimetypes.guess_type(path_obj)[0]
             if typemime in self.type_edit:
                 admins_action='[<a href="http://%s/edit">E</a>] [<a href="http://%s/delete">D</a>]' % (urlobj,urlobj)
         self.socket.send_datas('<a href="http://%s">%s</a> %s<br />' % (urlobj,elem,admins_action))           
     return
Ejemplo n.º 6
0
    def add_folder(self,path,msg=None):
        self.log.debug("ADDFOLDER")
        path=format_path(path)
        if path=='':
            #on ne peux creer la racine (elle existe deja)
            return
        pere=path_pere(path)
        name=name_from_path(path)

        fsreptmp=self.prepare_fstmp(pere)

        system_no_ret("""mkdir "%s/%s" """  %  (fsreptmp,name))
        
        actions=[("""svn add "%s/%s" """  %  (fsreptmp,name)),]
        message=msg
        if not message:
            message = "Ajouter Repertoire %s " % path
        tmpcommit=fsreptmp+'/'+name
        new_rev=self.commit(actions,message,tmpcommit,fsreptmp)

        return new_rev
Ejemplo n.º 7
0
    def trash(self,path,msg=None): 
        self.log.debug("TRASH")
        path=format_path(path)
        if path=='':
            #on ne peux pas mettre la racine dans trash
            return
        pere=path_pere(path)
        name=name_from_path(path)

        dt=datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
        pathtrash="/trash/%s" % dt

        self.log.debug('create  %s' % pathtrash)
        new_rev=self.add_folder(pathtrash)

        pathtrashobj="%s/%s" % (pathtrash,name)
        message="Trash : %s => %s " % (path,pathtrashobj)
        self.log.debug(message)

        new_rev=self.move(path,pathtrashobj)
        
        return (new_rev,dt)
Ejemplo n.º 8
0
    def add_link(self,pathlinkinit,pathlinkfinal,msg=None):
        self.log.debug("ADDLINK")
        pathlinkinit=format_path(pathlinkinit)
        pathlinkfinal=format_path(pathlinkfinal)

        perefinal=path_pere(pathlinkfinal)
        namefinal=name_from_path(pathlinkfinal)

        fsreptmp = self.prepare_fstmp(perefinal)

        #TODO BEST : lien en relatif et pas en absolu
        # pour permettre le deplacement dans un autre repertoire du contenu.
        system_no_ret("""ln -s "%s/%s" "%s/%s" """  %  (self.dataread,pathlinkinit,fsreptmp,namefinal))

        actions=[("""svn add "%s/%s" """  %  (fsreptmp,namefinal)),]
        message=msg
        if not message:
            message="Ajout lien symbolique %s => %s " % (pathlinkinit,pathlinkfinal)
        tmpcommit=fsreptmp+'/'+namefinal
        new_rev=self.commit(actions,message,tmpcommit,fsreptmp)

        return new_rev
Ejemplo n.º 9
0
    def delete(self,path,msg=None):
        self.log.debug("DELETE")
        ### Ne pas appeler directemer dans les modules,
        ### prefere appeler trash pour garder le contenu.
        path=format_path(path)
        if path=='':
            #on ne peux detruire la racine
            return
        pere=path_pere(path)
        name=name_from_path(path)

        fsreptmp=self.prepare_fstmp(pere)

        system_no_ret("""cp -r "%s%s" "%s" """  % (self.dataread,path,fsreptmp))

        actions=[("""svn del "%s/%s" """   %  (fsreptmp,name)),]
        message=msg
        if not message:
            message="Detruit fichier %s " % path
        tmpcommit=fsreptmp+'/'+name
        new_rev=self.commit(actions,message,tmpcommit,fsreptmp)

        return new_rev
Ejemplo n.º 10
0
    def add(self,path,data,msg=None,binary=False):
        path=format_path(path)
        if path=='':
            return
        pere=path_pere(path)
        name=name_from_path(path)
        fsreptmp=self.prepare_fstmp(pere)
        if binary:
            acces='wb'
        else:
            acces='w'
        f=open('%s/%s' % (fsreptmp,name),acces)
        f.write(data)
        f.close()

        actions=[("""svn add "%s/%s" """  %  (fsreptmp,name)),]
        message=msg
        if not message:
            message="Ajouter fichier %s " % path
        tmpcommit=fsreptmp+'/'+name
        new_rev=self.commit(actions,message,tmpcommit,fsreptmp)

        return new_rev
Ejemplo n.º 11
0
    def affiche(self):

        _=self.datas._
        name=name_from_path(self.path)
        if self.id!=self.datas.objet_actu.id:

            titre=self.get_propriete('titre','')
            description=self.get_propriete('description','')
            pathpage=self.config.path['files']+self.path
            pathlist=pathpage+'/normal/'
            elems=os.listdir(pathlist)
            images_elems=""
            if len(elems)>6:
                alea_elem=[]
                while len(alea_elem)<4:
                    e=random.choice(elems)
                    if e[0]!='.' and e not in alea_elem:
                        alea_elem.append(e)
                        images_elems+="""&nbsp;<img src="%s/%s/mini/mini_%s" border="0" />&nbsp;""" % (self.datas.objet_actu.path,name,e)
            self.socket.send_datas( u"""<div class="galerie_extrait"><a href="%s/%s" title="%s" alt="%s"><p class="bottom5">%s %s</p>%s</a></div>""" % (
                    self.datas.objet_actu.path,name,description,description,_('voir la galerie'),titre,images_elems))
            return

        self.page()