diff --git a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/Base_viewKnowledgePadMacroLibrary.xml b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/Base_viewKnowledgePadMacroLibrary.xml index 1dc05adce1592fb0fec2ed2b9e8da83a5debf2f8..c155ea8a631303a861e45c1d9aae4414e4046e61 100644 --- a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/Base_viewKnowledgePadMacroLibrary.xml +++ b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/Base_viewKnowledgePadMacroLibrary.xml @@ -61,13 +61,11 @@ \n </tal:block> \n \n -<tal:block metal:define-macro="add_new_gadget">\n - <a href="Base_viewGadgetListDialog"\n - tal:condition="not: isKnowledgePadTemplateUsed"\n - tal:attributes="href python:\n - \'Base_viewGadgetListDialog?reset=1&cancel_url=%s&active_pad_relative_url=%s&mode=%s\'\n - %(cancel_url, \n - active_knowledge_pad.getRelativeUrl(), mode);"\n +<tal:block metal:define-macro="add_new_gadget"\n + tal:define="active_knowledge_pad_relative_url active_knowledge_pad/getRelativeUrl;">\n + <a tal:condition="not: isKnowledgePadTemplateUsed"\n + onclick="return addNewPad()"\n + tal:attributes="onclick string: addNewPad(\'${cancel_url}\',\'${active_knowledge_pad_relative_url}\',\'${mode}\')"\n title="Add gadgets"\n i18n:domain="ui"\n i18n:attributes="title"\n @@ -134,10 +132,8 @@ <input type="text"\n id="new_knowledge_pad_title"\n name="knowledge_pad_title"\n - tal:attributes="value active_knowledge_pad/getTitle;\n - onkeypress string:return renameKnowledgePadToServerOnEnter(event,\n - \'rename_tab_dialog\',\'active_knowledge_pad_title\',\n - \'new_knowledge_pad_title\',\'${active_knowledge_pad_relative_url}\');"/>\n + onkeypress="return renameKnowledgePadToServerOnEnter(event);"\n + tal:attributes="value active_knowledge_pad/getTitle;"/>\n <br/>\n <br/>\n <button type="button"\n @@ -148,9 +144,7 @@ i18n:translate="" \n i18n:domain="ui"\n id="rename_tab_dialog_rename_button"\n - tal:attributes="onclick string:renameKnowledgePadToServer(\n - \'rename_tab_dialog\',\'active_knowledge_pad_title\',\n - \'new_knowledge_pad_title\',\'${active_knowledge_pad_relative_url}\');">\n + onclick="renameKnowledgePadToServer();">\n Rename \n </button>\n </div>\n @@ -186,37 +180,37 @@ tal:define="knowledge_pad_relative_url knowledge_pad/getRelativeUrl;\n active_knowledge_pad_relative_url active_knowledge_pad/getRelativeUrl;\n is_active python: knowledge_pad_relative_url==active_knowledge_pad_relative_url;\n - dom_id python: \'%s\' %knowledge_pad_relative_url.replace(\'/\', \'_\')"> \n + dom_id python: \'%s\' %knowledge_pad_relative_url.replace(\'/\', \'_\');\n + pad_title_dom_id python: \'%s_title\' %dom_id;"> \n \n <li tal:attributes="id dom_id;\n class python: test(is_active, \'tab tab_selected\', \'tab\')">\n +\n + <a tal:attributes="href string:\n + ERP5Site_toggleActiveKnowledgePad?knowledge_pad_url=${knowledge_pad_relative_url}&mode=${mode}">\n + <span tal:attributes="id pad_title_dom_id;"\n + tal:content="knowledge_pad/getTitle"/>\n + </a>\n +\n +\n +<!-- <span tal:attributes="id pad_title_dom_id;\n + onclick string:loadPadFromServer(\'${knowledge_pad_relative_url}\', \'${dom_id}\', \'${mode}\')" \n + tal:content="knowledge_pad/getTitle"/>-->\n +\n <div class="pad-actions"\n tal:attributes="style python: test(is_active, \'display:block\', \'display:none\')">\n - <span id="active_knowledge_pad_title" \n - tal:content="knowledge_pad/title"/>\n <span title="Settings"\n i18n:attributes="title"\n i18n:domain="ui"\n class="clickable_image rename_tab_dialog_image"\n - onclick="showRenamePadPopup();"></span>\n + tal:attributes="onclick string:showRenamePadPopup(\'${knowledge_pad_relative_url}\', \n + \'${pad_title_dom_id}\');"></span>\n <span title="Remove"\n i18n:attributes="title"\n i18n:domain="ui"\n class="clickable_image remove_tab_dialog_image"\n tal:attributes="onclick string: removeKnowledgePadFromServer(\n - \'${active_knowledge_pad_relative_url}\', \'${mode}\')"/>\n - </div>\n - <div class="pad-switch"\n - tal:attributes="style python: test(is_active, \'display:none\', \'display:block\')">\n -\n -<!-- <span tal:attributes="onclick string:loadPadFromServer(\'${knowledge_pad_relative_url}\', \'${dom_id}\', \'${mode}\')" \n - tal:content="knowledge_pad/getTitle"/>-->\n -\n - <a tal:attributes="href python:\n - \'ERP5Site_toggleActiveKnowledgePad?knowledge_pad_url=%s&mode=%s\'\n - %(knowledge_pad.getRelativeUrl(), mode)">\n - <span tal:content="knowledge_pad/getTitle"/></a>\n -\n + \'${knowledge_pad_relative_url}\', \'${mode}\')"/>\n </div>\n \n </li>\n diff --git a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.css.xml b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.css.xml index f5fa371c6f23f9a0462f86a1cdb8b710ef03b32d..2a0e24504c6ccebb0b6b3a6b1982b90a8630741d 100644 --- a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.css.xml +++ b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.css.xml @@ -12,7 +12,7 @@ </item> <item> <key> <string>_EtagSupport__etag</string> </key> - <value> <string>ts91104683.38</string> </value> + <value> <string>ts91368675.54</string> </value> </item> <item> <key> <string>__name__</string> </key> @@ -54,7 +54,9 @@ div.block {\n padding: 0px;\n width: 100%;\n }\n -\n +div.pad-actions{\n + float:left;\n +}\n h3.handle {\n margin: 0;\n padding: 0 0 0 10px;\n @@ -225,7 +227,9 @@ div.toggable_dialog{\n background-color: #97B0D1;\n padding: 0em 1em 0.5em 1em;\n }\n -\n +#add-gadgets{\n + cursor: pointer;\n +}\n #add_new_tab_dialog_link{\n cursor: pointer; \n font-weight: bold;\n @@ -493,7 +497,7 @@ div.gadget-rss-reader .body {\n </item> <item> <key> <string>size</string> </key> - <value> <int>8186</int> </value> + <value> <int>8253</int> </value> </item> <item> <key> <string>title</string> </key> diff --git a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.js.xml b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.js.xml index 538842d3efa8ad301a2e918facb88bef9a84359a..1103405bf8c69aef0eef7a7b9ebf5260e27c67b8 100644 --- a/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.js.xml +++ b/bt5/erp5_knowledge_pad/SkinTemplateItem/portal_skins/erp5_knowledge_pad/erp5_knowledge_box.js.xml @@ -12,7 +12,7 @@ </item> <item> <key> <string>_EtagSupport__etag</string> </key> - <value> <string>ts91303406.12</string> </value> + <value> <string>ts91368480.41</string> </value> </item> <item> <key> <string>__name__</string> </key> @@ -29,6 +29,10 @@ // global layout is saved here\n var last_layout = \'\';\n \n +// current active pad relative url\n +var active_knowledge_pad_relative_url = \'\';\n +var active_knowledge_pad_title_dom_id = \'\';\n +\n // enable or disable integration with server\n var is_knowledge_template_used = 0;\n \n @@ -260,8 +264,14 @@ function showAddNewPadPopup(){\n setTimeout("MochiKit.DOM.getElement(\'new_pad_title\').focus()", 500 );\n }\n \n -function showRenamePadPopup(){\n - toggleElementById(\'rename_tab_dialog\');\n +function showRenamePadPopup(knowledge_pad_relative_url, knowledge_pad_title_dom_id){\n + // set current active pad\' url & title dom element id\n + active_knowledge_pad_relative_url = knowledge_pad_relative_url;\n + active_knowledge_pad_title_dom_id = knowledge_pad_title_dom_id;\n + // init rename dialog input field to current active pad\n + getElement("new_knowledge_pad_title").value = getElement(knowledge_pad_title_dom_id).innerHTML;\n + // show rename dialog\n + toggleElementById(\'rename_tab_dialog\');\n // set focus on new Pad title after toggle effect is over \n setTimeout("MochiKit.DOM.getElement(\'new_knowledge_pad_title\').focus()", 500 );\n }\n @@ -281,9 +291,8 @@ function loadPadFromServer(pad_relative_url, selected_pad_dom_id, mode){\n old_selected_pad = getFirstElementByTagAndClassName("li", "tab_selected", pads_container);\n old_selected_pad.setAttribute("class", "tab");\n pad_actions = getFirstElementByTagAndClassName("div", "pad-actions", old_selected_pad);\n - pad_switch = getFirstElementByTagAndClassName("div", "pad-switch", old_selected_pad); \n +\n pad_actions.style.display="none";\n - pad_switch.style.display="block";\n \n // set new selected pad class \n new_selected_pad = getElement(selected_pad_dom_id);\n @@ -291,11 +300,11 @@ function loadPadFromServer(pad_relative_url, selected_pad_dom_id, mode){\n \n // enable "settings" for this pad and hide instant switch\n pad_actions = getFirstElementByTagAndClassName("div", "pad-actions", new_selected_pad);\n - pad_switch = getFirstElementByTagAndClassName("div", "pad-switch", new_selected_pad); \n pad_actions.style.display="block";\n - pad_switch.style.display="none";\n - \n - \n + \n + // set new active pad\n + active_knowledge_pad_relative_url = pad_relative_url;\n + \n function metadataFetchFailed(meta){}\n \n function handleServerSuccess(meta){\n @@ -311,6 +320,15 @@ function loadPadFromServer(pad_relative_url, selected_pad_dom_id, mode){\n }\n }\n \n +function addNewPad(cancel_url, knowledge_pad_relative_url, mode){\n + // if it\'s first time we switch set active_knowledge_pad_relative_url\n + if(active_knowledge_pad_relative_url==\'\'){\n + active_knowledge_pad_relative_url = knowledge_pad_relative_url;\n + }\n + // redirect to add gadget dialog\n + window.location="Base_viewGadgetListDialog?reset=1&cancel_url="+cancel_url+"&active_pad_relative_url="+active_knowledge_pad_relative_url+"&mode="+mode; \n +}\n +\n function addPadOnServerOnEnter(event, create_url, mode, cancel_url){\n /* Catch and submit form when ENTER is pressed */\n if(event.keyCode == 13){\n @@ -347,31 +365,32 @@ function removeKnowledgePadFromServer(knowledge_pad_relative_url, mode){\n }\n }\n \n -function renameKnowledgePadToServerOnEnter(event, dialog_id, title_id, \n - input_id, knowledge_pad_relative_url){\n +function renameKnowledgePadToServerOnEnter(event){\n if(event.keyCode == 13){\n - renameKnowledgePadToServer(dialog_id, title_id, input_id, knowledge_pad_relative_url);\n + renameKnowledgePadToServer();\n return false;\n }\n return true;\n }\n \n -function renameKnowledgePadToServer(dialog_id, title_id, \n - input_id, knowledge_pad_relative_url){\n +function renameKnowledgePadToServer(){\n if (is_knowledge_template_used){\n showCreateDefaultKnowledgePadWarningMessage();}\n else{\n // rename it locally and update server asynchonously\n - title_element = getElement(title_id)\n - input_element = getElement(input_id)\n + \n + // --title_id, input_id, knowledge_pad_relative_url\n + \n + title_element = getElement(active_knowledge_pad_title_dom_id)\n + input_element = getElement("new_knowledge_pad_title")\n var knowledge_pad_title = input_element.value;\n title_element.innerHTML = knowledge_pad_title;\n doSimpleXMLHttpRequest("ERP5Site_renameKnowledgePad", \n - {knowledge_pad_relative_url: knowledge_pad_relative_url,\n + {knowledge_pad_relative_url: active_knowledge_pad_relative_url,\n knowledge_pad_title: knowledge_pad_title});\n }\n //anyway toggle show dialog\n - toggle(dialog_id);\n + toggle("rename_tab_dialog");\n }\n \n function toggleElementById(dom_id){\n @@ -385,18 +404,21 @@ function initialize(){\n // allow drag and drop only if we are dealing with a pad we can modify\n var sortables = getElementsByTagAndClassName(\'div\', \'portal-column\');\n forEach(sortables, function (item) {\n - MochiKit.Sortable.create(item.id, {"constraint" : false,\n - "containment" : sortables,\n - "handle": "handle",\n - "only": "block",\n - "tag": "div",\n - "scroll": "true",\n - "hoverclass": "block-hover",\n - "dropOnEmpty": "true",\n - "onUpdate": updateServerBoxColumnLayout,\n - "starteffect" : MochiKit.Base.noop,\n - "endeffect" : MochiKit.Base.noop\n - });\n + // eliminate undraggable columns by checking exact match\n + if (item.className==\'portal-column\'){\n + MochiKit.Sortable.create(item.id, {"constraint" : false,\n + "containment" : sortables,\n + "handle": "handle",\n + "only": "block",\n + "tag": "div",\n + "scroll": "true",\n + "hoverclass": "block-hover",\n + "dropOnEmpty": "true",\n + "onUpdate": updateServerBoxColumnLayout,\n + "starteffect" : MochiKit.Base.noop,\n + "endeffect" : MochiKit.Base.noop\n + });\n + };\n })}\n \n // enable show/hide tabs\n @@ -478,7 +500,7 @@ MochiKit.DOM.addLoadEvent(initialize);\n </item> <item> <key> <string>size</string> </key> - <value> <int>17680</int> </value> + <value> <int>18522</int> </value> </item> <item> <key> <string>title</string> </key> diff --git a/bt5/erp5_knowledge_pad/bt/revision b/bt5/erp5_knowledge_pad/bt/revision index c3282600a47c138af5401a9733cee2ed706d3023..a557316495daf87a9067fa9ba15f15b66963a12a 100644 --- a/bt5/erp5_knowledge_pad/bt/revision +++ b/bt5/erp5_knowledge_pad/bt/revision @@ -1 +1 @@ -640 \ No newline at end of file +641 \ No newline at end of file