Author: jmorliaguet Date: Tue May 23 00:26:28 2006 New Revision: 3195 Modified: cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js cpsskins/branches/paris-sprint-2006/ui/authoring/definitions.py cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css
Log: - UI / cosmetic changes Modified: cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js ============================================================================== --- cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js (original) +++ cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.js Tue May 23 00:26:28 2006 @@ -1,5 +1,6 @@ CPSSkins.addActions({ + 'selectTag': function(info) { var target = info.target; var data = CPSSkins.getModelById('element-editor').getData(); @@ -7,7 +8,8 @@ var style_data = CPSSkins.getModelById('style-editor').getData(); var style_id = style_data.style_id; var selector = getSelectorInContext(target, $('previewArea'), style_id); - CPSSkins.getModelById('style-editor').updateData({selector: selector, uri: uri}); + CPSSkins.getModelById('style-editor').updateData( + {selector: selector, uri: uri}); }, 'updateLabel': function(info) { @@ -17,7 +19,7 @@ var label = info.target.getAttribute("label"); if (label) { box.innerHTML = label; - box.setStyle({left: x + 15 + 'px', top: y + 15 +'px'}); + box.setStyle({left: x+15+'px', top: y+15+'px'}); box.show(); } else { box.hide(); @@ -31,33 +33,33 @@ }); function getSelectorInContext(element, context, style_id) { - var i, node, tag, name, selector, classnames; - node = element; + var i, node, tag, name, selector, classnames; + node = element; - // If no context is passed, use the document itself. - if (!context) context = document; + // If no context is passed, use the document itself. + if (!context) context = document; - var selectors = new Array() - while (node) { - if (node == context) break; - tag = node.tagName; - if (!tag) break; - tag = tag.toLowerCase(); - classnames = node.className; - name = ''; - if (classnames) { - classnames = classnames.replace(' style' + style_id, '').split(' '); - name = classnames.join('.'); - } - selector = name ? tag + '.' + name : tag; - - // ignore tags that have the "ignore" attribute set - if (!node.getAttribute("ignore")) selectors.push(selector); - node = node.parentNode; + var selectors = new Array() + while (node) { + if (node == context) break; + tag = node.tagName; + if (!tag) break; + tag = tag.toLowerCase(); + classnames = node.className; + name = ''; + if (classnames) { + classnames = classnames.replace(' style' + style_id, '').split(' '); + name = classnames.join('.'); } - // reverse the array - selectors.reverse(); - selectors.shift(); - return selectors.join(" "); + selector = name ? tag + '.' + name : tag; + + // ignore tags that have the "ignore" attribute set + if (!node.getAttribute("ignore")) selectors.push(selector); + node = node.parentNode; + } + // reverse the array + selectors.reverse(); + selectors.shift(); + return selectors.join(" "); } Modified: cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt ============================================================================== --- cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt (original) +++ cpsskins/branches/paris-sprint-2006/standard/filters/style/style_editor.pt Tue May 23 00:26:28 2006 @@ -16,25 +16,29 @@ }} </ins> - <div class="inlineTabs" style="margin-bottom: 0.3em"> - <a i18n:translate="" - tal:repeat="type widget_types" - tal:content="string:widget.${type}" - tal:attributes="href string:javascript:CPSSkins.getModelById('style-editor').updateData({widget: '$type', selector: '', style_id: '$style_id'});" /> + <div class="inlineTabs"> + <span>Widget:</span> + <a i18n:translate="" tal:repeat="type widget_types" + tal:content="string:widget.${type}" + tal:attributes="href string:javascript:CPSSkins.getModelById('style-editor').updateData({widget: '$type', selector: '', style_id: '$style_id'});" /> </div> <table width="100%"> <tr> <td width="50%" valign="top"> - <div id="previewArea" style="cursor: pointer"> + <fieldset id="previewArea" class="panel" style="cursor: pointer"> + <legend class="panelTitle">Preview</legend> <ins class="view" tal:content="view/getPreviewDef" /> - </div> + </fieldset> <div class="floatingHint" style="display: none" id="labelInfo"> </div> </td> <td width="5%"></td> <td width="45%" valign="top"> - <ins class="view" tal:content="view/getFormDef" /> + <fieldset class="panel"> + <legend class="panelTitle">Edit form</legend> + <ins class="view" tal:content="view/getFormDef" /> + </fieldset> </td> </tr> </table> Modified: cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py (original) +++ cpsskins/branches/paris-sprint-2006/standard/filters/style/views.py Tue May 23 00:26:28 2006 @@ -22,9 +22,9 @@ from zope.app.session.interfaces import ISession from zope.component import getUtility, getUtilitiesFor -from cpsskins import configuration from cpsskins import minjson as json from cpsskins import utils +from cpsskins.elements.interfaces import IFormattable from cpsskins.setup.interfaces import IResourceManager from cpsskins.utils import getThemeManager @@ -41,7 +41,10 @@ self.tmutil = getThemeManager(context) def getWidgetTypes(self): - return [w[0] for w in getUtilitiesFor(configuration.IWidget)] + display_id = self.request.form.get('display') + display = self.tmutil.getElementById(display_id) + widget = IFormattable(display).getFormat(u'widget') + return widget.types def renderWidgetPreview(self): """Render a style preview based on the specified widget. Modified: cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js (original) +++ cpsskins/branches/paris-sprint-2006/ui/authoring/authoring.js Tue May 23 00:26:28 2006 @@ -1,19 +1,20 @@ function editSetting(uri) { - CPSSkins.getControllerById('site-manager-perspectives').switchTo('setting-editor') CPSSkins.getModelById('setting-editor').updateData({'form': {'uri': uri} }); + CPSSkins.getControllerById('site-manager-perspectives').switchTo( + 'setting-editor') } function insertPortlet(info) { var url = '@@insertElement' var args = { - 'id': info.target.getAttribute('targetid'), - 'type_name': info.source.getAttribute('type_name'), - 'order': 0 + id: info.target.getAttribute('targetid'), + type_name: info.source.getAttribute('type_name'), + order: 0 } var options = { - 'parameters': $H(args).toQueryString(), - 'onComplete': function(req) { + parameters: $H(args).toQueryString(), + onComplete: function(req) { var controller = info.context; controller.refreshViews(); } @@ -24,33 +25,36 @@ function moveElement(info) { var url = '@@moveElement' var args = { - 'src_id': info.source.getAttribute('id'), - 'dest_id': info.target.getAttribute('id'), - 'order': 0 + src_id: info.source.getAttribute('id'), + dest_id: info.target.getAttribute('id'), + order: 0 } var options = { - 'parameters': $H(args).toQueryString() + parameters: $H(args).toQueryString() }; new Ajax.Request(url, options); } function editElement(info) { var id = info.target.getAttribute('targetid'); - CPSSkins.getModelById('element-editor').updateData({'form': {'id': id, 'format': ''} }); - CPSSkins.getControllerById('main-editor-perspectives').switchTo('element-editor') + CPSSkins.getModelById('element-editor').updateData({ + form: {id: id, format: ''} + }); + CPSSkins.getControllerById('main-editor-perspectives').switchTo( + 'element-editor'); var style_editor_model = CPSSkins.getModelById('style-editor'); - if (style_editor_model) style_editor_model.updateData({'widget': ''}); + if (style_editor_model) style_editor_model.updateData({widget: ''}); } function duplicateElement(info) { - var url = '@@duplicateElement' + var url = '@@duplicateElement'; var args = { - 'id': info.target.getAttribute('id') + id: info.target.getAttribute('id') } + var controller = info.context; var options = { - 'parameters': $H(args).toQueryString(), - 'onComplete': function(req) { - var controller = info.context; + parameters: $H(args).toQueryString(), + onComplete: function(req) { controller.refreshViews(); } } @@ -60,18 +64,25 @@ function deleteElement(info) { var url = '@@deleteElement' var args = { - 'id': info.target.getAttribute('id') + id: info.target.getAttribute('id') } + var controller = info.context; var options = { - 'parameters': $H(args).toQueryString(), - 'onComplete': function(req) { - var controller = info.context; + parameters: $H(args).toQueryString(), + onComplete: function(req) { controller.refreshViews(); } } new Ajax.Request(url, options); } +StyleSheet = Class.create(); +StyleSheet.prototype = Object.extend(new CPSSkins.View(), { + render: function(data) { + this.widget.href = './renderCSS?timestamp=' + new Date().getTime(); + } +}); + /* Register actions */ CPSSkins.addActions({ 'insert portlet': insertPortlet, @@ -82,23 +93,12 @@ /* Register widgets */ CPSSkins.registerWidgets({ - 'stylesheet': function(def) { var widget = CPSSkins.Canvas.createNode({ tag: "link", - attributes: {'rel': 'stylesheet', 'type': 'text/css'} + attributes: {rel: 'stylesheet', type: 'text/css'} }); return new StyleSheet(widget, def); } - -}); - -StyleSheet = Class.create(); -StyleSheet.prototype = Object.extend(new CPSSkins.View(), { - - render: function(data) { - this.widget.href = './renderCSS?timestamp=' + new Date().getTime(); - } - }); Modified: cpsskins/branches/paris-sprint-2006/ui/authoring/definitions.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/authoring/definitions.py (original) +++ cpsskins/branches/paris-sprint-2006/ui/authoring/definitions.py Tue May 23 00:26:28 2006 @@ -34,7 +34,7 @@ 'id': 'setting-editor', 'data': { 'url': '@@setting-editor.html', - 'css': '++resource++site-manager.css', + 'css': '++resource++element-editor.css', 'script': '', 'form': { 'id': '', Modified: cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt (original) +++ cpsskins/branches/paris-sprint-2006/ui/panels/element_editor.pt Tue May 23 00:26:28 2006 @@ -1,91 +1,79 @@ +<tal:block i18n:domain="cpsskins" define=" + id request/form/id|nothing; + mode request/form/mode|string:edit; + tmutil context/@@getThemeManager; + element python: tmutil.getElementById(id); + info element/@@editpanel/getInfo; + display nocall:info/display; + display_id display/identifier; + setting nocall:info/setting; + edited nocall:info/edited; + edited_type edited/type:resourcename; + setting_info edited/@@getSettingsInfo"> -<tal:block i18n:domain="cpsskins" - define="id request/form/id|nothing; - mode request/form/mode|string:edit; - tmutil context/@@getThemeManager; - element python: tmutil.getElementById(id); - info element/@@editpanel/getInfo; - display nocall:info/display; - display_id display/identifier; - setting nocall:info/setting; - edited nocall:info/edited; - edited_type edited/type:resourcename; - setting_info edited/@@getSettingsInfo"> - - <a class="next" - href="javascript:CPSSkins.getControllerById('main-editor-perspectives').goBack()">To the editor</a> + <a href="javascript:CPSSkins.getControllerById('main-editor-perspectives').goBack()">< back to the editor</a> <h1 class="title" tal:define="title element/title"> <tal:block condition="not:title" i18n:translate="" content="info/element/name" /> - <tal:block condition="title" - content="title" /> + <tal:block condition="title" content="title" /> </h1> - <p class="description" tal:define="description element/description|string:No description" - tal:content="description" /> + <p class="description" tal:content="description" + tal:define="description element/description|string:No description" /> <div class="tabs"> - <a i18n:translate="" - tal:attributes=" - href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: '$id', mode: 'edit'}})" - tal:content="info/element/name" /> - - <a i18n:translate="" - tal:attributes=" - href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: $id, tab: '${display/type:name}'}})" - tal:content="display/type:name" /> - - <a i18n:translate="" - tal:repeat="format info/formats" - tal:attributes=" - href string:javascript:CPSSkins.getModelById('element-editor').updateData({script: '/++skin++cpsskins/++resource++style_editor.js', form: {id: $id, display: $display_id, format: ${format/id}, uri: '${format/uri}', tab: '${format/name}'}})" - tal:content="format/name" /> + <a i18n:translate="" tal:content="info/element/name" tal:attributes=" + href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: '$id', mode: 'edit'}})" /> - <a i18n:translate="" - tal:attributes=" - href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: '$id', mode: 'preview'}})">Preview</a> + <a i18n:translate="" tal:content="display/type:name" tal:attributes=" + href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: $id, tab: '${display/type:name}'}})" /> + <a i18n:translate="" tal:repeat="format info/formats" tal:attributes=" + href string:javascript:CPSSkins.getModelById('element-editor').updateData({script: '/++skin++cpsskins/++resource++style_editor.js', form: {id: $id, display: $display_id, format: ${format/id}, uri: '${format/uri}', tab: '${format/name}'}})" + tal:content="format/name" /> + + <a i18n:translate="" tal:attributes=" + href string:javascript:CPSSkins.getModelById('element-editor').updateData({form: {id: '$id', mode: 'preview'}})">Preview</a> </div> - <tal:block condition="python: mode == 'edit'"> - <div class="form" tal:content="structure edited/@@edit.html" /> - </tal:block> + <div class="form" tal:condition="python: mode == 'edit' and setting is None" + tal:content="structure edited/@@edit.html" /> <div class="form" tal:condition="python: mode == 'preview'" - tal:content="structure info/preview" /> + tal:content="structure info/preview" /> - <div class="form" tal:condition="request/form/format|nothing"> - <p tal:condition="setting"> - This format uses a site-wide setting. + <div style="float:right" tal:condition="request/form/format|nothing"> + <p tal:condition="not:setting"> + create a setting </p> + <!-- <div tal:condition="not:setting"> <div>Create a setting</div> - <form tal:attributes="action string:${edited/@@absolute_url}/@@createSetting" - enctype="multipart/form-data" method="post"> + <form enctype="multipart/form-data" method="post" + tal:attributes="action string:${edited/@@absolute_url}/@@createSetting"> <p> <label for="title">Title</label> <input id="title" type="text" name="title" /> <input type="submit" name="UPDATE_SUBMIT" - i18n:translate="create-button" value="Create" /> + i18n:translate="create-button" value="Create" /> </p> </form> </div> <tal:block condition="python: edited_type in setting_info"> - <div>Use another setting</div> <ul> <li tal:repeat="setting setting_info/?edited_type"> - <a href="" - tal:attributes="href string:${display/@@absolute_url}/@@useSettingAsFormat?uri=${setting/uri}" - tal:content="setting/name" /> + <a href="" tal:content="setting/name" + tal:attributes="href string:${display/@@absolute_url}/@@useSettingAsFormat?uri=${setting/uri}" /> </li> </ul> </tal:block> + + --> </div> - <br/> - <br/> + <br style="clear:both"/> </tal:block> Modified: cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css ============================================================================== --- cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css (original) +++ cpsskins/branches/paris-sprint-2006/ui/screens/elementeditor/element-editor.css Tue May 23 00:26:28 2006 @@ -50,11 +50,15 @@ padding: 0.2em; } +div.inlineTabs { + margin-bottom: 1em; +} + div.inlineTabs a { margin-left: 0.2em; background-color: #efc; - color: #060; border: 1px solid #ccc; + color: #060; padding: 0 0.4em } @@ -67,3 +71,12 @@ font-size: 0.8em; font-weight: bold; } + +fieldset.panel { + padding: 1.5em; + border: 1px solid #ccc; +} + +fieldset.panel legend.panelTitle { + color: #666; +} -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins