Changeset 546:2928037f9a75 in documentViewer


Ignore:
Timestamp:
Aug 28, 2012, 6:24:01 PM (12 years ago)
Author:
casties
Branch:
default
Message:

ASSIGNED - # 249: Annotations shared in groups
https://it-dev.mpiwg-berlin.mpg.de/tracs/mpdl-project-software/ticket/249

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • SrvTxtUtils.py

    r528 r546  
    1212
    1313
    14 srvTxtUtilsVersion = "1.4.1"
     14srvTxtUtilsVersion = "1.5"
    1515
    1616def getInt(number, default=0):
     
    3838            return s.decode('latin-1')
    3939    else:
    40         return unicode(s)
     40        return s
    4141
    4242def utf8ify(s):
     
    4848        return s
    4949    else:
    50         return unicode(s).encode('utf-8')
     50        return s.encode('utf-8')
    5151
    5252def getText(node, recursive=0):
     
    7676
    7777
    78 def getHttpData(url, data=None, num_tries=3, timeout=10):
     78def getHttpData(url, data=None, num_tries=3, timeout=10, noExceptions=False):
    7979    """returns result from url+data HTTP request"""
    8080    # we do GET (by appending data to url)
     
    117117        return data
    118118   
     119    if noExceptions:
     120        return None
     121   
    119122    raise IOError("ERROR fetching HTTP data from %s: %s"%(url,errmsg))
    120123    #return None
  • documentViewer.py

    r543 r546  
    127127    viewer_index = PageTemplateFile('zpt/viewer_index', globals())
    128128    viewer_thumbs = PageTemplateFile('zpt/viewer_thumbs', globals())
    129     # available layer types
    130     builtinLayers = {'text': ['dict','search','gis','annotator'],
     129    # available layer types (annotator not default)
     130    builtinLayers = {'text': ['dict','search','gis'],
    131131                     'xml': None, 'images': None, 'index': None}
    132132    availableLayers = builtinLayers;
     
    317317        return pt(docinfo=docinfo, pageinfo=pageinfo)
    318318 
    319     #WTF?
    320     def generateMarks(self,mk):
    321         ret=""
    322         if mk is None:
    323             return ""
    324         if not isinstance(mk, list):
    325             mk=[mk]
    326         for m in mk:
    327             ret+="mk=%s"%m
    328         return ret
    329    
    330    
    331319    def getAvailableLayers(self):
    332320        """returns dict with list of available layers per viewMode"""
     
    986974       
    987975
     976    def getAnnotatorGroupsForUser(self, user, annotationServerUrl="http://tuxserve03.mpiwg-berlin.mpg.de/AnnotationManager"):
     977        """returns list of groups {name:*, id:*} on the annotation server for the user"""
     978        groups = []
     979        groupsUrl = "%s/annotator/groups?user=%s"%(annotationServerUrl,user)
     980        data = getHttpData(url=groupsUrl, noExceptions=True)
     981        if data:
     982            res = json.loads(data)
     983            rows = res.get('rows', None)
     984            if rows is None:
     985                return groups
     986            for r in rows:
     987                groups.append({'id': r.get('id', None), 'name': r.get('name', None), 'uri': r.get('uri', None)})
     988               
     989        return groups
     990   
     991
    988992    security.declareProtected('View management screens','changeDocumentViewerForm')   
    989993    changeDocumentViewerForm = PageTemplateFile('zpt/changeDocumentViewer', globals())
  • zpt/layer_text_annotator.zpt

    r531 r546  
    3434
    3535  <script type="text/javascript"
    36     tal:define="annUrl python:'%s?url=%s&pn=%s'%(rootUrl,docinfo['url'],pageinfo['pn']); annUser python:here.getAuthenticatedUser(anon='anonymous');"
    37     tal:content="structure string:var annotatorPageUrl='$annUrl'; var annotatorUser='$annUser';"></script>
     36    tal:define="annUrl python:'%s?url=%s&pn=%s'%(rootUrl,docinfo['url'],pageinfo['pn']);
     37      global annUser python:here.getAuthenticatedUser(anon='anonymous');
     38      global annGroup python:request.get('annotator_group', None);
     39      permUser python:test(annGroup, 'group:%s'%annGroup, annUser);"
     40    tal:content="structure string:var annotatorPageUrl='$annUrl'; var annotatorUser='$annUser'; var permissionUser='$permUser';"></script>
    3841
    3942  <script type="text/javascript">
     
    4649                    tokenUrl : 'template/token?user='+annotatorUser
    4750                }).addPlugin('Permissions', {
    48                     user : annotatorUser,
     51                    user : permissionUser,
    4952                    userString : function(user) {
    5053                        if (user && user.name) {
     
    6063                    }
    6164                }).addPlugin('Store', {
    62                     prefix: 'http://tuxserve03.mpiwg-berlin.mpg.de/AnnotationManager/annotator',
     65                    //prefix: 'http://tuxserve03.mpiwg-berlin.mpg.de/AnnotationManager/annotator',
     66                    prefix: 'http://r583-1.mpiwg-berlin.mpg.de:18080/AnnotationManager/annotator',
    6367                    annotationData : {
    6468                        'uri' : uri
     
    8993  <metal:block metal:define-macro="options_box" tal:condition="python:'annotator' in viewLayers">
    9094    <!-- BEGIN ANNOTATIONS -->
    91     <div class="options" tal:define="annUser python:here.getAuthenticatedUser(anon='anonymous')">
     95    <div class="options">
    9296      <h4>Annotations</h4>
    93       <div>You are user "<span tal:replace="annUser"/>"</div>
     97      <p>
     98        User "<span tal:replace="annUser" />"<span tal:condition="annGroup" tal:content="string: ($annGroup)"/>.
     99      </p>
     100      <!-- TODO: login button -->
     101      <form class="autosubmit" tal:attributes="action viewerUrl">
     102        <input type="hidden" tal:define="params python:here.getParams(params={'annotator_group':None});" tal:repeat="param params"
     103          tal:attributes="name param; value python:params[param]" />
     104        <p>
     105          In group
     106          <select class="autosubmit" name="annotator_group">
     107            <option value="" tal:attributes="selected not:annGroup;"> </option>
     108            <option
     109              tal:repeat="group python:here.getAnnotatorGroupsForUser(user=annUser,annotationServerUrl='http://localhost:18080/AnnotationManager')"
     110              tal:attributes="value group/id; selected python:group['id']==annGroup;" tal:content="group/name" />
     111          </select> <br />
     112          <input type="submit" value="Go!" />
     113        </p>
     114      </form>
    94115    </div>
    95116    <!-- END ANNOTATIONS -->
Note: See TracChangeset for help on using the changeset viewer.