equal
deleted
inserted
replaced
27 |
27 |
28 class ExternalTemplate(basetemplates.TheMainTemplate): |
28 class ExternalTemplate(basetemplates.TheMainTemplate): |
29 """template embeding an external web pages into CubicWeb web interface |
29 """template embeding an external web pages into CubicWeb web interface |
30 """ |
30 """ |
31 id = 'external' |
31 id = 'external' |
32 |
32 |
33 def call(self, body): |
33 def call(self, body): |
34 # XXX fallback to HTML 4 mode when embeding ? |
34 # XXX fallback to HTML 4 mode when embeding ? |
35 self.set_request_content_type() |
35 self.set_request_content_type() |
36 self.req.search_state = ('normal',) |
36 self.req.search_state = ('normal',) |
37 self.template_header(self.content_type, None, self.req._('external page'), |
37 self.template_header(self.content_type, None, self.req._('external page'), |
90 """display an 'embed' link on entity implementing `embeded_url` method |
90 """display an 'embed' link on entity implementing `embeded_url` method |
91 if the returned url match embeding configuration |
91 if the returned url match embeding configuration |
92 """ |
92 """ |
93 id = 'embed' |
93 id = 'embed' |
94 __select__ = (one_line_rset() & match_search_state('normal') |
94 __select__ = (one_line_rset() & match_search_state('normal') |
95 & implements(IEmbedable) |
95 & implements(IEmbedable) |
96 & score_entity(entity_has_embedable_url)) |
96 & score_entity(entity_has_embedable_url)) |
97 |
97 |
98 title = _('embed') |
98 title = _('embed') |
99 controller = 'embed' |
99 controller = 'embed' |
100 |
100 |
101 def url(self, row=0): |
101 def url(self, row=0): |
102 entity = self.rset.get_entity(row, 0) |
102 entity = self.rset.get_entity(row, 0) |
103 url = urljoin(self.req.base_url(), entity.embeded_url()) |
103 url = urljoin(self.req.base_url(), entity.embeded_url()) |
104 if self.req.form.has_key('rql'): |
104 if self.req.form.has_key('rql'): |
105 return self.build_url(url=url, rql=self.req.form['rql']) |
105 return self.build_url(url=url, rql=self.req.form['rql']) |
117 |
117 |
118 class replace_href: |
118 class replace_href: |
119 def __init__(self, prefix, custom_css=None): |
119 def __init__(self, prefix, custom_css=None): |
120 self.prefix = prefix |
120 self.prefix = prefix |
121 self.custom_css = custom_css |
121 self.custom_css = custom_css |
122 |
122 |
123 def __call__(self, match): |
123 def __call__(self, match): |
124 original_url = match.group(1) |
124 original_url = match.group(1) |
125 url = self.prefix + urlquote(original_url, safe='') |
125 url = self.prefix + urlquote(original_url, safe='') |
126 if self.custom_css is not None: |
126 if self.custom_css is not None: |
127 if '?' in url: |
127 if '?' in url: |
134 class absolutize_links: |
134 class absolutize_links: |
135 def __init__(self, embedded_url, tag, custom_css=None): |
135 def __init__(self, embedded_url, tag, custom_css=None): |
136 self.embedded_url = embedded_url |
136 self.embedded_url = embedded_url |
137 self.tag = tag |
137 self.tag = tag |
138 self.custom_css = custom_css |
138 self.custom_css = custom_css |
139 |
139 |
140 def __call__(self, match): |
140 def __call__(self, match): |
141 original_url = match.group(1) |
141 original_url = match.group(1) |
142 if '://' in original_url: |
142 if '://' in original_url: |
143 return match.group(0) # leave it unchanged |
143 return match.group(0) # leave it unchanged |
144 return '%s="%s"' % (self.tag, urljoin(self.embedded_url, original_url)) |
144 return '%s="%s"' % (self.tag, urljoin(self.embedded_url, original_url)) |