ó
|£*^c           @  s:  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 m Z d  d l m Z m Z m Z m Z d Z d e d Z d Z d	 Z d
 e f d „  ƒ  YZ d f  d „  ƒ  YZ d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z e e _ d „  Z  d S(   iÿÿÿÿ(   t   unicode_literalsN(   t   etree(   t   PHPArrayt   PHPDictt
   PHPLiteralt   PHPFunctionCallu"   http://cbikt.de/rad-framework/pageu   {u   }u   page.xsdi   t   PageParserExceptionc           B  s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR      s   t
   Translatorc           B  sb   e  Z d	 e d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 d „ Z d „  Z RS(
   c         C  sw   | |  _  | |  _ | ss t j ƒ  |  _ t j j ƒ  j d ƒ } i | d 6d d 6d d 6d d 6|  j _ d  |  _
 n  d  S(	   Nu   %Y-%m-%d %H:%M%zu   POT-Creation-Dateu   1.0u   MIME-Versionu   text/plain; charset=utf-8u   Content-Typeu   8bitu   Content-Transfer-Encoding(   t   _gettext_domaint   _is_stubt   polibt   POFilet   _pot   datetimet   nowt   strftimet   metadatat   Nonet   _current_source_path(   t   selft   gettext_domaint   is_stubt	   timestamp(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   __init__   s    		c         C  sU   t  j | ƒ } x? |  j D]4 } | j | j ƒ } | d  k sI | | k r t Sq Wt S(   N(   R   t   pofileR   t   findt   msgidR   t   Truet   False(   R   t   patht   po_othert   entryt   m(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   differs_from*   s    c         C  s*   |  j  s t d ƒ ‚ |  j j | ƒ d  S(   Nu   Cannot write out in stub mode.(   R   t   AssertionErrorR   t   save(   R   R   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt	   write_out2   s    c         C  s   |  j  r d  S| |  _ d  S(   N(   R   R   (   R   R   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   set_source_path6   s    	c         C  s¸   | j  d  k	 rZ |  j | j  ƒ \ } } } |  j | | j ƒ | |  j | ƒ | | _  n  | j d  k	 r´ |  j | j ƒ \ } } } |  j | | j ƒ | |  j | ƒ | | _ n  d  S(   N(   t   textR   t   _split_stringt   _add_stringt
   sourcelinet
   _translatet   tail(   R   t   nodet   leftt   midt   right(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt	   feed_node;   s    c         C  s‚   | | j  k r~ t | j  | t ƒ r~ | j  | } |  j | ƒ \ } } } |  j | | j ƒ | |  j | ƒ | | j  | <n  d  S(   N(   t   attribt
   isinstancet
   basestringR)   R*   R+   R,   (   R   R.   t   anamet   valR/   R0   R1   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt	   feed_attrE   s
    %c         C  sw   | j  ƒ  } | j ƒ  } t | ƒ t | ƒ } t | ƒ t | ƒ } | d | !| | t | ƒ | !| t | ƒ | f S(   Ni    (   t   lstript   rstript   len(   R   t   st   ut   vt   it   j(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR)   L   s
    c         C  sÄ   |  j  s | d k r d  Si | d 6} |  j d  k	 r` | d  k	 r` |  j t | ƒ f g | d <n  t j | �  } |  j j | ƒ } | d  k	 r° | j | j | _ | j	 | ƒ n |  j j
 | ƒ d  S(   Nu    u   msgidu   occurrences(   R   R   R   t   unicodeR   t   POEntryR   R   t   occurrencest   merget   append(   R   R   t   linet   argsR!   t   existing(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR*   S   s    c         C  sb   |  j  s$ |  j d  k s$ | d k r( | St j |  j | ƒ } t | t ƒ r^ t | d ƒ } n  | S(   Nu    u   utf-8(   R   R
   R   t   gettextt   dgettextR4   t   strRA   (   R   R   t   msg(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR,   a   s    $N(   R   R   R   R   R   R#   R&   R'   R2   R8   R)   R*   R,   (    (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR	      s   				
		c          C  s‰   t  j j t  j j t j d ƒ t ƒ }  t  j j |  ƒ s] t d j	 |  t j d ƒ ƒ ‚ d  St |  d ƒ � } t j d | ƒ SWd  QXd  S(   Ni    uO   Could not find schema file '{}'. Make sure it is in the same directory as '{}'.u   rt   file(   t   osR   t   joint   dirnamet   syst   argvt   SCHEMA_FILEt   isfileR   t   formatR   t   openR   t	   XMLSchema(   t   schema_patht   f(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt
   get_schemaj   s    (	c         C  s
   |  d k S(   Nu   yes(    (   R7   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   xmlboolt   s    u   /c         C  sk  i  } i  } x¥|  D]�} x”t  j | ƒ D]ƒ} t  j j | | ƒ } t  j j | ƒ rØ d | k rz t d j | ƒ ƒ ‚ n  | d | k r¥ t d j | | ƒ ƒ ‚ n  | | k r¾ g  | | <n  | | j | ƒ | } q) t  j j | ƒ r—t  j j	 | ƒ \ } } | d k rq) n  d | k r8t d j | ƒ ƒ ‚ n  | | k r_t d j | | ƒ ƒ ‚ n  | | k rŠt d j | | | ƒ ƒ ‚ n  | | | <q) t d j | ƒ ƒ ‚ q) Wq Wg  }	 xW | j
 ƒ  D]I \ } }  t  j j | | ƒ }
 t |  |
 ƒ } |	 j | t | f f ƒ qÇW|	 g  | j
 ƒ  D] \ } } | t | f f ^ q$7}	 t |	 d d	 „  ƒ}	 t j |	 ƒ S(
   Nu   .u*   Page directory '{}' must not contain dots.u   .xmluD   A file and a directory have the same name '{}' in virtual path '{}'.u%   Page path '{}' must not contain dots.u<   Files '{}' and '{}' point to the same page in the page tree.u%   Unknown file type for '{}', aborting.t   keyc         S  s   |  \ } } | S(   N(    (   t   .0t   namet   _(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   <lambda>    s    (   RN   t   listdirR   RO   t   isdirR   RU   RE   RT   t   splitextt   itemst   list_file_treeR   R   t   sortedt   collectionst   OrderedDict(   t   sourcest   virtdirt   dirst   filest   sourcet	   full_namet   abspathR^   t   suffixt	   file_treet	   virtchildt   children(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyRe   w   sN    						5c         C  s€   xy | D]q \ } } | |  j  k r |  j  | } | t k rJ t | ƒ } n | t k re t | ƒ } n  t | ƒ | | <q q Wd  S(   N(   R3   t   boolR[   t   intR   (   R.   t   attribst   widget_attribsR6   t   atypeR7   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   _read_widget_attribs¥   s    c   	        s¸  d g ‰  ‡  f d †  ‰ d „  ‰ ‡ f d †  ‰ d „  ‰
 d „  ‰	 t  ‡ ‡
 ‡ f d † ‰ ‡ ‡	 ‡ ‡ f d †  ‰ t ƒ  ‰ g  ‡ ‡ f d	 † ‰ g  ‡ ‡ ‡ f d
 † ‰ ‡ ‡ f d †  ‰ ‡ ‡ f d †  ‰ ‡ f d †  } t ‡ ‡ f d † } g  ‡ f d † ‰ ‡ ‡ ‡ f d †  ‰ d ˆ _ ‡ ‡ ‡ f d †  ‰ d ˆ _ ‡ ‡ f d †  ‰ ‡ ‡ f d †  ‰ | t g  g  ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ f	 d † ‰" g  g  ˆ ‡ ‡ ‡ ‡ ‡ f d † ‰# ‡ f d †  ‰ ‡ f d †  ‰  ‡ ‡ ‡ f d †  ‰ ‡ ‡! f d †  ‰ ‡ f d †  ‰ ‡ ‡ ‡ ‡ ‡ ‡ f d †  ‰ d „  ‰ ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡" ‡# f d †  ‰! g  ‰ i  ‰ ˆ! | d  d ƒ ˆ d S(   Ni    c            s(   d t  ˆ  d ƒ }  ˆ  d c d 7<|  S(   Nu   $vi    i   (   RA   (   t   var(   t   var_cnt(    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   allocvar±   s    c         S  s   d  S(   N(    (   Rz   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   freevar¶   s    c           s"   t  d j ˆ  |  j | ƒ ƒ ‚ d  S(   Nu	   {}:{}: {}(   R   RU   R+   (   R.   RL   (   R   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   error¹   s    c         S  sI   |  d  k r d  Sx2 |  j t d ƒ D] } | j d | k r$ | Sq$ Wd  S(   Nu   recordu   name(   R   t   findallt   RADR3   (   t   modelR^   t   rec(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   find_record¼   s
    c         S  sÏ   |  j  t d k r: |  j t d ƒ |  j t d ƒ } ni |  j  t d k s` |  j  t d k rv |  j t d ƒ } n- |  j  t d k rŸ |  j t d ƒ } n d  Sx% | D] } | j d | k rª | Sqª Wd  S(   Nu   modelu   queryu   emptysetu   subqueryu   name(   t   tagR€   R   R   R3   (   R.   R^   t   elemst   el(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt
   find_queryÃ   s    '&c           sv  d  } |  j d j d ƒ } | d d k rw | j d ƒ ˆ d  k s^ ˆ j t d ƒ d  k rn ˆ  |  d ƒ n  d } nÉ | d d k rÝ t | ƒ d	 k  r© ˆ  |  d
 ƒ n  | j d ƒ | j d ƒ } d j t | ƒ ƒ } nc ˆ ˆ | d ƒ d  k	 r| j d ƒ } d j t | ƒ ƒ } n# | s@ˆ  |  d j | d ƒ ƒ n  | rP| | f St | ƒ d k rrˆ  |  d ƒ n  | S(   Nu   sourceu   /i    u   $u   primaryuq   Invalid 'source' attribute: Reference to primary record ($) requires a primary record to be defined in the model.u   $model->getPrimaryRecord()u   ..i   u,   Invalid 'source' attribute: Incomplete path.u   $model->getReadOnlyRecord({})u   $model->getNamedRecord({})u7   Invalid 'source' attribute: Record '{}' does not exist.u8   Invalid 'source' attribute: Unknown trailing components.(	   R   R3   t   splitt   popR   R€   R;   RU   R   (   R.   t   return_remaindert   phpR   R^   (   R~   Rƒ   R�   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_source_recordÓ   s.    %	
c           së  |  j  d } ˆ |  d t ƒ\ } } | d  k	 r{ t | ƒ d k rS ˆ  |  d ƒ n  t | d ƒ | d <t t ƒ | d <| S| d d k rç t | ƒ d	 k  r­ ˆ  |  d
 ƒ n  t | ƒ d	 k rÏ ˆ  |  d ƒ n  t | d ƒ | d <d Sˆ d  k rˆ  |  d ƒ n  ˆ ˆ | d ƒ } | d  k r?ˆ  |  d j | d ƒ ƒ n  d j t | d ƒ ƒ g } xb | d D]V } ˆ | | ƒ } | d  k r ˆ  |  d j | ƒ ƒ n  | j d j t | ƒ ƒ ƒ qfWd j | ƒ | d <t t ƒ | d <d Sd  S(   Nu   sourceRŠ   i   ua   Invalid 'source' attribute: There must be exactly one subquery following a reference to a record.i    u	   recordsetu
   fix-recordu   .i   u,   Invalid 'source' attribute: Incomplete path.uA   Invalid 'source' attribute: Too many components in relative path.u   nullu/   Invalid 'source' attribute: No model specified.u:   Query '{}' specified in 'source' attribute does not exist.u   $model->getRecordSet({})u=   Subquery '{}' specified in 'source' attribute does not exist.u   getSubSet({})u   ->(   R3   R   R   R;   R   RU   RE   RO   (   R.   Rw   Rm   t
   php_recordt   partst   queryt   exprR^   (   R~   R‡   R�   RŒ   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_source_recordsetò   s>     c           s  d t  f d t f d t f d t  f d t  f d t  f d t f g } d |  j k rŠ d |  j k rs ˆ |  d	 ƒ n  |  j d |  j d <n  d |  j k rÓ |  j d ˆ  k r¼ ˆ |  d
 ƒ n  ˆ  j |  j d ƒ n  t ƒ  } t |  | | | ƒ t |  j d ƒ | f S(   Nu   idu   hiddenu
   fix-recordu   editableu   classu   styleu   inlineu   nameu-   Widget has neither 'name' nor 'id' attribute.u   ID already in use.(   RA   Rt   R3   t   addR   Ry   R   (   R.   Rv   t   base_attribsRw   (   t   all_idsR~   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_widget  s    !	c           sÑ   ˆ j  |  d ƒ d t f d t f d t f g } ˆ |  | | ƒ \ } } g  } d } xk t |  d j t ƒ rÃ |  d j t d k rÃ ˆ  |  d d j | ƒ ƒ } | j | ƒ |  d =| d 7} qY W| | | f S(   Nu   captionu   outer-classu   helpi    u   actionu	   _action{}i   (   R8   RA   R4   R„   R5   R€   RU   RE   (   R.   Rv   t   composite_attribsR^   Rw   t   actionsR?   t   childvar(   t   composeR•   t
   translator(    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_composite_widget/  s    c           s¡   ˆ  |  d t  f d t  f d t  f d t f d t  f d t  f d t f d t f g ƒ \ } } } d |  j k r‚ t t ƒ | d <n  ˆ |  | ƒ } | | | | f S(	   Nu   allow-selectu	   allow-addu   allow-deleteu	   page-sizeu   auto-filteru   sortableu   custom-add-linku   custom-select-link(   Rt   Ru   RA   R3   R   t   TABLE_DEFAULT_PAGE_SIZE(   R.   R^   Rw   R—   t   record(   R›   R‘   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_table_widgetA  s    $c           s@   ˆ  |  d t  f g ƒ \ } } } ˆ |  | ƒ } | | | | f S(   Nu	   separator(   RA   (   R.   R^   Rw   R—   R�   (   R›   R‘   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_repeat_widgetL  s    c           s   ˆ  |  ƒ \ } } } t  } d  S(   N(   t   parse(   R.   R^   Rw   R_   R�   (   R›   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_wizard_widgetR  s    c           sP   ˆ  |  ƒ \ } } } d |  j  k r4 | r4 d } n ˆ |  ƒ } | | | | f S(   Nu   sourceu   null(   R3   (   R.   t   require_sourceR^   Rw   R—   R�   (   R›   RŒ   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_record_widgetV  s
    	c           s   ˆ  |  d t  f g | ƒ S(   Nu   source(   RA   (   R.   t   attr(   R•   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_value_widget^  s    c           s    ˆ j  |  ƒ d |  j k rV d |  j k rV d j ˆ  j ƒ |  j d <ˆ  j d 7_ n  ˆ |  ƒ \ } } |  j d  k	 r€ |  j n d } t | ƒ | d <| | f S(   Nu   idu   nameu   _linkconfirm{}i   u    u   label(   R2   R3   RU   t   counterR(   R   R   (   R.   R^   Rw   t   label(   t   parse_attribs_link_widgetR•   Rš   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR¨   a  s    c           s    ˆ j  |  ƒ d |  j k rV d |  j k rV d j ˆ  j ƒ |  j d <ˆ  j d 7_ n  ˆ |  ƒ \ } } |  j d  k	 r€ |  j n d } t | ƒ | d <| | f S(   Nu   idu   nameu   _link{}i   u    u   label(   R2   R3   RU   R¦   R(   R   R   (   R.   R^   Rw   R§   (   t    parse_attribs_linkconfirm_widgetR•   Rš   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR©   o  s    c           s‘   ˆ j  |  ƒ ˆ  |  d d t f d t f g ƒ\ } } |  j d  k	 rR |  j } n d } t | ƒ | d <d | k r‡ t t ƒ | d <n  | | f S(   NRv   u   iconu   requires-writeu    u   labelu   requires_write(   R2   RA   Rt   R(   R   R   R   (   R.   R^   Rw   R§   (   R•   Rš   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_button_widget}  s    	!c      
     sl   ˆ j  |  d ƒ ˆ j  |  d ƒ ˆ  |  d t f d t f d t f d t f d t f d t f d t f g ƒ S(   Nu
   null-labelu	   new-labelu   sqlu
   allow-nullu	   allow-newu   ajax-urlu   null-display(   R8   RA   Rt   (   R.   (   R¥   Rš   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   parse_attribs_select_widgetŠ  s    c           sÂ   | |  d | ƒ\ } }	 }
 } t  |  | |	 ƒ ˆ |  ƒ } ˆ ƒ  } ˆ |  ƒ } ˆ j d j | | | | |	 |
 ƒ ƒ ˆ | |  | ƒ ˆ  | | ƒ ˆ | | ƒ ˆ |  | | | ƒ ˆ j | ƒ d  S(   NR¢   u,   {} = new W\{}({}, $page, $auth, {}, {}, {});(   Ry   RE   RU   (   R.   t   parentt   idxt   clst	   attr_funcR¢   Rv   t   eventsR^   Rw   R�   R—   t   child_countRz   t   rend(	   t   add_actionst   add_childrent
   add_eventsR|   t   descendR‹   t   renderert   replace_with_pit   stack(    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   visit_composite_widget“  s    	c   
        s~   | |  ƒ \ } } t  |  | | ƒ ˆ ƒ  }	 ˆ j d j |	 | | | ƒ ƒ ˆ  |	 |  | ƒ ˆ |  | | | ƒ ˆ j |	 ƒ d  S(   Nu$   {} = new W\{}({}, $page, $auth, {});(   Ry   RE   RU   (
   R.   R¬   R­   R®   Rv   R°   R¯   R^   Rw   Rz   (   Rµ   R|   R‹   R¸   R¹   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   visit_value_widget¤  s    	c           s`   xY | D]Q } d | } | | j  k r | j  | } ˆ  j d j |  t | ƒ | ƒ ƒ q q Wd  S(   Nu   onu7   {}->listen({}, function(W\Event $e){{$this->{}($e);}});(   R3   RE   RU   R   (   Rz   R.   R°   t   eventt   eattrt   fn_name(   R‹   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyRµ   ®  s    
c           s.   x' | D] } ˆ  j  d j |  | ƒ ƒ q Wd  S(   Nu   {}->addAction({});(   RE   RU   (   Rz   R—   t   actvar(   R‹   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR³   ¶  s    c           sJ   xC t  | ƒ D]5 } ˆ j ƒ  } ˆ j d j |  | ƒ ƒ ˆ  | ƒ q Wd  S(   Nu   {}->add({});(   t   rangeR‰   RE   RU   (   Rz   R±   R_   R˜   (   R}   R‹   R¹   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR´   º  s    c           sG   t  ˆ  ƒ } x* t |  ƒ D] \ } } ˆ | |  | ƒ q Wt  ˆ  ƒ | S(   N(   R;   t	   enumerate(   R.   t	   stack_ptrR?   t   child(   R¹   t   visit(    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR¶   À  s    c           sÉ   t  j |  d d d d ƒ} t | d ƒ } | j d ƒ d } | j d ƒ } | | | !} x` ˆ  j ƒ  D]R \ } \ } } | j | ƒ d k r± d	 j | ƒ } | j | | ƒ } n  ˆ  | =qf Wd
 j | ƒ S(   Nt   methodu   xmlt   encodingu   utf-8u   >i   u   <iÿÿÿÿu    <?= htmlspecialchars({}($w)); ?>uO   new W\CallbackCompositeRenderer(function(W\CompositeWidget $w) {{ ?>{}<?php }})(	   R   t   tostringRA   t   indext   rindexRd   R   RU   t   replace(   R.   t   templatet   startt   endt   uidR6   t   afnt   attr_php(   t   add_attribs(    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR·   Æ  s    c           sà   ˆ |  ƒ } | d k rš t  |  ƒ d k rš |  d j t j k rš |  j d  k sd |  j j ƒ  d k rš |  d j d  k s� |  d j j ƒ  d k rš ˆ j ƒ  Sˆ ƒ  } ˆ j	 d j
 | t | ƒ ˆ |  ƒ ƒ ƒ ˆ  | | ƒ | Sd  S(   Ni   i    u    u:   {} = new W\CompositeWidget({}, $page, $auth, {}, array());(   R;   R„   R   t   PIR(   R   t   stripR-   R‰   RE   RU   R   (   R.   R^   R±   Rz   (   R´   R|   R¶   R‹   R·   R¹   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR™   Ù  s    $,
	c         S  s?   d j  | ƒ } t j d | ƒ } | | j | _ | | | <d  S(   Nu   $w->child({})->render(); u   php(   RU   R   t   ProcessingInstructionR-   (   R.   R¬   R­   R^   t   codet   pi(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyR¸   è  s    c           sƒ  |  j  t j k rC |  j d k rC t j j d j ˆ |  j ƒ ƒ n  t	 |  j  t
 ƒ sY d  S|  j  t d k r| d  k	 rˆ ˆ |  d ƒ n  t ˆ ƒ } d } ˆ | ˆ d d d g ƒ ˆ j d	 j | ƒ ƒ ˆ |  ƒ } ˆ j | d
 j | ˆ |  ƒ ˆ ƒ ƒ ˆ | | ƒ ˆ j | ƒ nh|  j  t d k rOˆ |  | | d d d d d g ƒn0|  j  t d k r–ˆ |  | | d d d t f g d d g d t ƒné|  j  t d k rÔˆ |  | | d d d t f g d t ƒn«|  j  t d k r¯ˆ |  ƒ \ } } } }	 ˆ ƒ  } ˆ j d j | | | | ƒ ƒ ˆ | |  d d d g ƒ ˆ  | |	 ƒ x<t |  ƒ D].\ }
 } t	 | j  t
 ƒ s~qZqZ| j  t d k r÷ˆ j | d ƒ t d  „  | j j ƒ  Dƒ ƒ } ˆ | d! j |
 ƒ ƒ } ˆ j d" j | | | ƒ ƒ qZ| j  t d# k r>ˆ | d$ j |
 ƒ ƒ } ˆ j d% j | | ƒ ƒ qZ| j  t d& k r|ˆ | d' ƒ } ˆ j d( j | | ƒ ƒ qZt sZt ‚ qZWˆ |  | | | ƒ ˆ j | ƒ nÐ|  j  t d) k rµˆ |  ƒ \ } } } }	 ˆ ƒ  } ˆ j d* j | | | | ƒ ƒ ˆ | |  d d+ g ƒ ˆ  | |	 ƒ ˆ |  d, d- ƒ } ˆ j d. j | | ƒ ƒ t |  ƒ d/ k r’ˆ |  d/ d0 ƒ } ˆ j d1 j | | ƒ ƒ n  ˆ |  | | | ƒ ˆ j | ƒ nÊ
|  j  t d2 k rÙˆ |  ƒ \ } } ˆ ƒ  } ˆ j d3 j | | | ƒ ƒ xn t |  j t d4 ƒ ƒ D]S \ }
 } t | j d5 ƒ } ˆ | d6 j |
 ƒ ƒ } ˆ j d7 j | | | ƒ ƒ qWxC |  j t d8 ƒ D]. } ˆ | d9 ƒ } ˆ j d: j | | ƒ ƒ q„Wˆ |  | | | ƒ ˆ j | ƒ n¦	|  j  t d; k r‘ˆ |  d d< t f d= t f g ƒ\ } } ˆ ƒ  } ˆ j d> j | | | ƒ ƒ d  } xü t |  ƒ D]î \ }
 } ˆ j | d ƒ t | j d ƒ } d? | j k rÄt | j d? ƒ rÄ| d  k	 r»ˆ |  d@ ƒ n  |
 } n  ˆ | dA j |
 ƒ ƒ } d= | j k r
ˆ j dB j | | | ƒ ƒ qNt | j d= ƒ } ˆ j dC j | | | | ƒ ƒ qNW| d  k	 rnˆ j dD j | t | ƒ ƒ ƒ n  ˆ |  | | | ƒ ˆ j | ƒ nî|  j  t dE k rýˆ
 |  ƒ \ } } } dF |  j k r×ˆ |  ƒ } n dG } ˆ ƒ  } ˆ j dH j | | | | ƒ ƒ ˆ | |  dI dJ g ƒ x¼ t |  j t dK ƒ ƒ D]¡ \ }
 } ˆ j | d ƒ t | j d ƒ } dL | j k r™ˆ j | dL ƒ t | j dL ƒ } n dG } ˆ | dM j |
 ƒ ƒ } ˆ j dN j | | | | ƒ ƒ q5Wˆ |  | | | ƒ ˆ j | ƒ n‚|  j  t dO k rÙ	ˆ |  ƒ \ } } ˆ ƒ  } ˆ j dP j | | | ƒ ƒ xl |  j t dQ ƒ D]W } d |  j k r€	ˆ |  dR ƒ n  ˆ j dS j | t | j d5 ƒ t | j ƒ ƒ ƒ q[	Wˆ |  | | | ƒ ˆ j | ƒ n¦|  j  t dT k r*
ˆ j |  dU ƒ ˆ |  | | dV d dU t f dW t f g ƒnU|  j  t dX k r{
ˆ j |  dU ƒ ˆ |  | | dY d dU t f dW t f g ƒn|  j  t dZ k rÃ
ˆ j |  dU ƒ ˆ |  | | d[ d dU t f g ƒn¼|  j  t d\ k r&ˆ j |  dU ƒ ˆ |  | | d] d d^ t f d_ t f dU t f dW t f g ƒnY|  j  t d` k rOˆ |  | | da ƒ n0|  j  t db k r—ˆ j |  dc ƒ ˆ |  | | dd d dc t f g ƒnè|  j  t de k rÏˆ |  | | df d dg t f g ƒn°|  j  t dh k rˆ j |  di ƒ ˆ |  | | dj d di t f g ƒnh|  j  t dk k rFˆ |  | | dl dm ˆ ƒn9|  j  t dn k r–ˆ |  | | do dm ˆ d dp t f dq t f d= t f g ƒné|  j  t dr k ræˆ |  | | ds dm ˆ d dp t f dq t f d= t f g ƒn™|  j  t dt k rˆ |  | | du dm ˆ	 d dv g ƒna|  j  t dw k rGˆ |  | | dx ƒ n8|  j  t dy k rÇˆ |  | | dz d d{ t f d| t f d} t f d~ t f d t f d€ t f d� t f dn t f d‚ t f g	 ƒn¸|  j  t dƒ k rˆ |  | | d„ d d{ t f d| t f dn t f g ƒnn|  j  t d… k r4ˆ |  d† ƒ nKt j |  j  ƒ j t  k rkˆ |  d‡ j |  j  ƒ ƒ nxú t |  ƒ d, k rg|  d, j  t d… k rg|  d, j dˆ } |  d, j d‰ } | |  j k ráˆ |  dŠ j | ƒ ƒ n  t t! j" d� d� ƒ ƒ } | |  j | <| | f ˆ | <|  d, j# d  k	 r]|  j d  k rDdŽ |  _ n  |  j |  d, j# 7_ n  |  d, =qnWˆ j$ |  ƒ ˆ |  ƒ d  S(‘   Nu   phpuU   Encountered PHP processing instruction in {}:{}. I hope you know what you are doing.
u   bodyu   'body' tag must not be nested.u   $pageu   preparerecordsu	   beforerunu   beforerenderu   {}->setModel($model, $node);u2   {} = new W\Page({}, $auth, {}, $pdo, $res, $lang);u   single-formu
   SingleFormR°   u   submitu   validateu   renderu   groupu   CompositeWidgetRv   u   table-new-requiredR¢   u	   sql-groupu   SqlGroupWidgetu   sqlu   tableu1   {} = new W\TableWidget({}, $page, $auth, {}, {});u	   newrecordu   recordsavedu	   renderrowu   tdu   titlec         S  s%   i  |  ] \ } } t  | ƒ | “ q S(    (   R   (   R]   t   kR>   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pys
   <dictcomp>  s   	u   _col{}u   {}->addColumn({}, {});u   action-columnu	   _action{}u   {}->addActionColumn({});u   editing-areau   _editing_areau   {}->setEditingArea({});u   repeatu2   {} = new W\RepeatWidget({}, $page, $auth, {}, {});u   rendernotfoundi    u   _contentu   {}->setContentWidget({});i   u	   _notfoundu   {}->setNotFoundWidget({});u   switchu.   {} = new W\SwitchWidget({}, $page, $auth, {});u   caseu   valueu   _case{}u   {}->setCase({}, {});u   defaultu   _defaultu   {}->setDefault({});u   tabsu   use-urlu   iconu,   {} = new W\TabsWidget({}, $page, $auth, {});u   firstu.   Cannot have multiple tabs declared as 'first'.u   _tab{}u   {}->addTab({}, {});u   {}->addTab({}, {}, {});u   {}->setDefaultSelection({});u   wizardu   sourceu   nullu2   {} = new W\WizardWidget({}, $page, $auth, {}, {});u   changeu   finishu   paneu   subtitleu   _pane{}u   {}->addPane({}, {}, {});u   selectu.   {} = new W\SelectWidget({}, $page, $auth, {});u   optionuY   Select widget can't have an 'sql' attribute and 'option' child elements at the same time.u   {}->addOption({}, {});u   textu   placeholderu
   TextWidgetu   truncateu   HTMLu
   HTMLWidgetu   currencyu   CurrencyWidgetu   textareau   TextareaWidgetu   rowsu   colsu   coloru   ColorWidgetu   passwordu   show-stringu   PasswordWidgetu   dateu
   DateWidgetu   formatu   checkboxu   labelu   CheckboxWidgetu   enumu
   EnumWidgetR¯   u   linku
   LinkWidgetu   hrefu   targetu   linkconfirmu   LinkconfirmWidgetu   buttonu   ButtonWidgetu   clicku   fileu
   FileWidgetu   pictureu   FilePictureWidgetu   widthu   heightu   resizeu	   thumbnailu   fitwidthu	   fitheightu   fitbestu   cropperu   picture-svgu   FilePictureSvgWidgetu	   attributeuA   Element 'attribute' must be the first child of a non-RAD element.u   Unknown or unexpected tag '{}'.u   nameu   functionu)   Cannot overwrite existing attribute '{}'.i
   i   i   u    I €Æ¤~� I  Áoò†# (%   R„   R   RÒ   t   targetRQ   t   stderrt   writeRU   R+   R4   R5   R€   R   R;   RE   t   insertRA   R   RÁ   R8   R   R3   Rd   R$   R   R   Rt   R[   R(   Ru   t   QNamet	   namespacet   RAD_NAMESPACEt   randomt   randintR-   R2   (   R.   R¬   R­   t	   begin_idxRz   R±   R^   Rv   R�   R—   R?   t   elemR¤   t   colvarR˜   t   valuet	   first_tabt   titlet   iconR_   t   subtitlet   optionR6   RÏ   RÎ   (   R³   RÑ   R´   Rµ   R|   R™   R¶   R~   t   page_attribsRª   R›   R¨   R©   RŸ   R«   Rž   R¥   R•   RŒ   R   R‹   R·   R¸   t   rootR¹   Rš   Rº   R»   (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyRÄ   î  s¨   !

	

				& 	!	"	#	&	'
%%[%,(   R   t   setR   R¦   R   (	   Rë   t   bodyR‹   Rê   R   R�   Rš   R¡   R£   (    ($   R³   RÑ   R´   Rµ   R”   R|   R™   R¶   R~   R‡   Rƒ   R}   R�   Rê   Rª   R›   R¨   R©   RŸ   R«   Rž   R¥   R•   RŒ   R‘   R   R‹   R·   R¸   Rë   R¹   Rš   R{   RÄ   Rº   R»   s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   _parse_body¯   sL    				'			
0		`Üc         C  sÛ   t  j d  k r6 t j d t ƒ  d t d t ƒ t  _ n  t  j } t |  d ƒ � } t j | d | ƒ} Wd  QX| j	 ƒ  } | j
 |  ƒ | j t d k r§ t d ƒ ‚ n  | j | d ƒ | j | d	 ƒ | j | d
 ƒ | S(   Nt   schemat   remove_commentst   attribute_defaultsu   rt   parseru   pageu   Root node must be 'page'.u   titleu	   title-newu   title-breadcrumb(   t	   open_pageRò   R   R   t	   XMLParserRZ   R   RV   R    t   getrootR'   R„   R€   R   R8   (   R   Rš   Rò   RY   t   treeRë   (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyRó   Ð  s    	c         C  sé   t  ƒ  } t |  d t f g | ƒ g  } |  j t d ƒ } | d  k rK i  S|  j t d ƒ } t |  | | | | | | ƒ } | j d j | ƒ ƒ | d  k r§ d }	 n( | j	 d d ƒ j	 d d ƒ }
 d	 |
 }	 i d
 j
 | ƒ d |	 f 6S(   Nu   unsaved-noticeu   bodyu   modelu
   return {};u
   build_pageu   -u   _u   .u   build_page_u   
u   private(   R   Ry   Rt   R   R€   R   Rî   RE   RU   RÊ   RO   (   Rë   R   Rš   t   langRê   R‹   Rí   R�   Rz   RÅ   t	   lang_sane(    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt
   parse_pageå  s    		
(!   t
   __future__R    Rg   R   RI   RN   t   os.pathR   Rß   RQ   t   lxmlR   t   rad.phpR   R   R   R   RÞ   R€   RS   Rœ   t	   ExceptionR   R	   RZ   R[   Re   Ry   Rî   Ró   R   Rò   Rù   (    (    (    s_   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/rad/pagelib.pyt   <module>   s4   "O	
	.	
	ÿ ÿ #		