# HG changeset patch # User Sandrine Ribeau # Date 1247774237 25200 # Node ID 09615ea7533e71d5edbbff1fe04cb794d2d2361b # Parent fba943784b1cbd5512612c10543052adf2b83d8a# Parent ea1defea9636019bac9b6ff9ec4bf72f08e613ed merge diff -r fba943784b1c -r 09615ea7533e web/data/cubicweb.htmlhelpers.js --- a/web/data/cubicweb.htmlhelpers.js Thu Jul 16 12:54:46 2009 -0700 +++ b/web/data/cubicweb.htmlhelpers.js Thu Jul 16 12:57:17 2009 -0700 @@ -16,78 +16,6 @@ return ''; } -// XXX this is used exactly ONCE in web/views/massmailing.py -function insertText(text, areaId) { - var textarea = jQuery('#' + areaId); - if (document.selection) { // IE - var selLength; - textarea.focus(); - sel = document.selection.createRange(); - selLength = sel.text.length; - sel.text = text; - sel.moveStart('character', selLength-text.length); - sel.select(); - } else if (textarea.selectionStart || textarea.selectionStart == '0') { // mozilla - var startPos = textarea.selectionStart; - var endPos = textarea.selectionEnd; - // insert text so that it replaces the [startPos, endPos] part - textarea.value = textarea.value.substring(0,startPos) + text + textarea.value.substring(endPos,textarea.value.length); - // set cursor pos at the end of the inserted text - textarea.selectionStart = textarea.selectionEnd = startPos+text.length; - textarea.focus(); - } else { // safety belt for other browsers - textarea.value += text; - } -} - -/* taken from dojo toolkit */ -// XXX this looks unused -function setCaretPos(element, start, end){ - if(!end){ end = element.value.length; } // NOTE: Strange - should be able to put caret at start of text? - // Mozilla - // parts borrowed from http://www.faqts.com/knowledge_base/view.phtml/aid/13562/fid/130 - if(element.setSelectionRange){ - element.focus(); - element.setSelectionRange(start, end); - } else if(element.createTextRange){ // IE - var range = element.createTextRange(); - with(range){ - collapse(true); - moveEnd('character', end); - moveStart('character', start); - select(); - } - } else { //otherwise try the event-creation hack (our own invention) - // do we need these? - element.value = element.value; - element.blur(); - element.focus(); - // figure out how far back to go - var dist = parseInt(element.value.length)-end; - var tchar = String.fromCharCode(37); - var tcc = tchar.charCodeAt(0); - for(var x = 0; x < dist; x++){ - var te = document.createEvent("KeyEvents"); - te.initKeyEvent("keypress", true, true, null, false, false, false, false, tcc, tcc); - element.dispatchEvent(te); - } - } -} - - -// XXX this looks unused -function setProgressMessage(label) { - var body = document.getElementsByTagName('body')[0]; - body.appendChild(DIV({id: 'progress'}, label)); - jQuery('#progress').show(); -} - -// XXX this looks unused -function resetProgressMessage() { - var body = document.getElementsByTagName('body')[0]; - jQuery('#progress').hide(); -} - /* set body's cursor to 'progress' */ function setProgressCursor() { @@ -151,7 +79,7 @@ /* toggles visibility of login popup div */ -// XXX used exactly ONCE +// XXX used exactly ONCE in basecomponents function popupLoginBox() { toggleVisibility('popupLoginBox'); jQuery('#__login:visible').focus(); @@ -193,14 +121,6 @@ forEach(filter(filterfunc, elements), function(cb) {cb.checked=checked;}); } -/* centers an HTML element on the screen */ -// XXX looks unused -function centerElement(obj){ - var vpDim = getViewportDimensions(); - var elemDim = getElementDimensions(obj); - setElementPosition(obj, {'x':((vpDim.w - elemDim.w)/2), - 'y':((vpDim.h - elemDim.h)/2)}); -} /* this function is a hack to build a dom node from html source */ function html2dom(source) { @@ -223,12 +143,6 @@ function isTextNode(domNode) { return domNode.nodeType == 3; } function isElementNode(domNode) { return domNode.nodeType == 1; } -// XXX this looks unused -function changeLinkText(link, newText) { - jQuery(link).text(newText); -} - - function autogrow(area) { if (area.scrollHeight > area.clientHeight && !window.opera) { if (area.rows < 20) { @@ -236,13 +150,6 @@ } } } - -// XXX this looks unused -function limitTextAreaSize(textarea, size) { - var $area = jQuery(textarea); - $area.val($area.val().slice(0, size)); -} - //============= page loading events ==========================================// CubicWeb.rounded = [ @@ -250,8 +157,6 @@ ['div.boxTitle, div.boxPrefTitle, div.sideBoxTitle, th.month', 'top 6px'] ]; - - function roundedCorners(node) { node = jQuery(node); for(var r=0; r < CubicWeb.rounded.length; r++) { @@ -259,7 +164,8 @@ } } -jQuery(document).ready(function () {roundedCorners(this.body)}); +jQuery(document).ready(function () {roundedCorners(this.body);}); + +CubicWeb.provide('corners.js'); CubicWeb.provide('htmlhelpers.js'); - diff -r fba943784b1c -r 09615ea7533e web/data/cubicweb.massmailing.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/data/cubicweb.massmailing.js Thu Jul 16 12:57:17 2009 -0700 @@ -0,0 +1,23 @@ + +function insertText(text, areaId) { + var textarea = jQuery('#' + areaId); + if (document.selection) { // IE + var selLength; + textarea.focus(); + sel = document.selection.createRange(); + selLength = sel.text.length; + sel.text = text; + sel.moveStart('character', selLength-text.length); + sel.select(); + } else if (textarea.selectionStart || textarea.selectionStart == '0') { // mozilla + var startPos = textarea.selectionStart; + var endPos = textarea.selectionEnd; + // insert text so that it replaces the [startPos, endPos] part + textarea.value = textarea.value.substring(0,startPos) + text + textarea.value.substring(endPos,textarea.value.length); + // set cursor pos at the end of the inserted text + textarea.selectionStart = textarea.selectionEnd = startPos+text.length; + textarea.focus(); + } else { // safety belt for other browsers + textarea.value += text; + } +} diff -r fba943784b1c -r 09615ea7533e web/data/cubicweb.python.js --- a/web/data/cubicweb.python.js Thu Jul 16 12:54:46 2009 -0700 +++ b/web/data/cubicweb.python.js Thu Jul 16 12:57:17 2009 -0700 @@ -157,7 +157,7 @@ // ========== ARRAY EXTENSIONS ========== /// Array.prototype.contains = function(element) { return findValue(this, element) != -1; -} +}; // ========== END OF ARRAY EXTENSIONS ========== /// @@ -201,7 +201,7 @@ * [0,2,4,6,8] */ function list(iterable) { - iterator = iter(iterable); + var iterator = iter(iterable); var result = []; while (true) { /* iterates until StopIteration occurs */ @@ -267,14 +267,6 @@ function min() { return listMin(arguments); } function max() { return listMax(arguments); } -// tricky multiple assign -// function assign(lst, varnames) { -// var length = min(lst.length, varnames.length); -// for(var i=0; i>> d = dict(["x", "y", "z"], [0, 1, 2]) * >>> d['y'] @@ -335,7 +327,7 @@ function makeConstructor(userctor) { return function() { // this is a proxy to user's __init__ - if(userctor) { + if (userctor) { userctor.apply(this, arguments); } }; @@ -369,7 +361,7 @@ } } var userctor = basemeths['__init__']; - constructor = makeConstructor(userctor); + var constructor = makeConstructor(userctor); // python-like interface constructor.__name__ = name; diff -r fba943784b1c -r 09615ea7533e web/data/tabs-no-images.css --- a/web/data/tabs-no-images.css Thu Jul 16 12:54:46 2009 -0700 +++ b/web/data/tabs-no-images.css Thu Jul 16 12:57:17 2009 -0700 @@ -3,7 +3,7 @@ ul.css-tabs { margin:0 !important; padding:0; - height:24px; + height:20px; border-bottom:1px solid #666; } @@ -24,12 +24,10 @@ text-decoration:none; border:1px solid #666; border-bottom:0px; - height:18px; + height:14px; background-color:#efefef; color:#777; margin-right:2px; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright:4px; position:relative; top:1px; } @@ -42,9 +40,8 @@ /* selected tab */ ul.css-tabs a.current { background-color: white; - border-bottom:2px solid #ddd; + border-bottom:2px solid white; color:#000; - cursor:default; } diff -r fba943784b1c -r 09615ea7533e web/views/massmailing.py --- a/web/views/massmailing.py Thu Jul 16 12:54:46 2009 -0700 +++ b/web/views/massmailing.py Thu Jul 16 12:57:17 2009 -0700 @@ -123,7 +123,7 @@ def call(self): req = self.req - req.add_js('cubicweb.widgets.js') + req.add_js('cubicweb.widgets.js', 'cubicweb.massmailing.js') req.add_css('cubicweb.mailform.css') from_addr = '%s <%s>' % (req.user.dc_title(), req.user.get_email()) form = self.vreg.select('forms', 'massmailing', self.req, rset=self.rset, diff -r fba943784b1c -r 09615ea7533e web/views/primary.py --- a/web/views/primary.py Thu Jul 16 12:54:46 2009 -0700 +++ b/web/views/primary.py Thu Jul 16 12:57:17 2009 -0700 @@ -39,12 +39,7 @@ def cell_call(self, row, col): self.row = row - # XXX move render_entity implementation here - self.render_entity(self.complete_entity(row, col)) - self.maxrelated = self.req.property_value('navigation.related-limit') - - def render_entity(self, entity): - """return html to display the given entity""" + entity = self.complete_entity(row, col) self.render_entity_title(entity) self.render_entity_metadata(entity) # entity's attributes and relations, excluding meta data @@ -54,23 +49,9 @@ self.w(u'
') self.w(u'
') self.content_navigation_components('navcontenttop') - try: - self.render_entity_attributes(entity) - except TypeError, e: # XXX bw compat - if 'render_entity' not in e.args[0]: - raise - warn('siderelations argument of render_entity_attributes is ' - 'deprecated (%s)' % self.__class__) - self.render_entity_attributes(entity, []) + self.render_entity_attributes(entity) if self.main_related_section: - try: - self.render_entity_relations(entity) - except TypeError, e: # XXX bw compat - if 'render_entity' not in e.args[0]: - raise - warn('siderelations argument of render_entity_relations is ' - 'deprecated') - self.render_entity_relations(entity, []) + self.render_entity_relations(entity) self.w(u'
') # side boxes if boxes or hasattr(self, 'render_side_related'): @@ -83,7 +64,7 @@ self.w(u'') self.w(u'
') self.content_navigation_components('navcontentbottom') - + self.maxrelated = self.req.property_value('navigation.related-limit') def content_navigation_components(self, context): self.w(u'
' % context) diff -r fba943784b1c -r 09615ea7533e web/views/schema.py --- a/web/views/schema.py Thu Jul 16 12:54:46 2009 -0700 +++ b/web/views/schema.py Thu Jul 16 12:57:17 2009 -0700 @@ -27,7 +27,7 @@ def skip_types(req): if int(req.form.get('skipmeta', True)): - return schema.SKIP_TYPES + return SKIP_TYPES return () class ViewSchemaAction(action.Action): @@ -191,15 +191,15 @@ class RestrictedSchemaVisitorMixIn(object): def __init__(self, req, *args, **kwargs): + self.req = req super(RestrictedSchemaVisitorMixIn, self).__init__(*args, **kwargs) - self.req = req - def should_display_schema(self, schema): - return (super(RestrictedSchemaVisitorMixIn, self).should_display_schema(schema) + def should_display_schema(self, rschema): + return (super(RestrictedSchemaVisitorMixIn, self).should_display_schema(rschema) and rschema.has_local_role('read') or rschema.has_perm(self.req, 'read')) - def should_display_attr(self, schema): - return (super(RestrictedSchemaVisitorMixIn, self).should_display_attr(schema) + def should_display_attr(self, rschema): + return (super(RestrictedSchemaVisitorMixIn, self).should_display_attr(rschema) and rschema.has_local_role('read') or rschema.has_perm(self.req, 'read')) diff -r fba943784b1c -r 09615ea7533e web/views/tabs.py --- a/web/views/tabs.py Thu Jul 16 12:54:46 2009 -0700 +++ b/web/views/tabs.py Thu Jul 16 12:57:17 2009 -0700 @@ -107,12 +107,9 @@ active_tab = self.active_tab(tabs, default) # build the html structure w = self.w - if entity: - w(u'