2012-08-14 68 views
1

我正尝试创建一个简单的Alfresco Dashlet,并在标题栏上启用了一个编辑按钮。不幸的是,我无法弄清楚如何让编辑按钮在标题栏上实际显示display标题栏中的Dashlet编辑按钮无法正确显示

这是我到目前为止有:

dashlet说明文件(.desc.xml)

<webscript> 
    <shortname>Sample</shortname> 
    <description>Displays a Sample dashlet</description> 
    <family>dashlet</family> 
    <url>/mycompany/components/dashlets/sample-dashlet</url> 
</webscript> 

我的主要Freemarker模板文件(.ftl)

<script type="text/javascript"> 
    //<![CDATA[ 
    var sampleDashlet = new MyCompany.dashlet.SampleDashlet("${args.htmlid}").setOptions({ 
     "componentId": "${instance.object.id}", 
     "siteId": "${page.url.templateArgs.site!""}", 
     "title": "${msg("header")}" 
    }).setMessages(${messages}); 
    new Alfresco.widget.DashletResizer("${args.htmlid}", "${instance.object.id}"); 

    var editDashletEvent = new YAHOO.util.CustomEvent("onDashletConfigure"); 
    editDashletEvent.subscribe(sampleDashlet.onConfigClick, sampleDashlet, true); 

    new Alfresco.widget.DashletTitleBarActions("${args.htmlid}").setOptions({ 
     actions: [{ 
      cssClass: "edit", 
      eventOnClick: editDashletEvent, 
      tooltip: "${msg("dashlet.edit.tooltip")?js_string}" 
     }] 
    }); 
    //]]> 
</script> 

<div class="dashlet-1"> 
<div> Test </div> 
</div> 

似乎问题一定在我的配置某处,但我找不到它。任何人都可以向我指出正确的方向吗?

+0

您尚未包含MyCompany.dashlet.SampleDashlet客户端JavaScript组件的实现。这应该驻留在head中引用的JavaScript文件中。 – 2012-08-14 18:01:41

回答

2

如果您想要一个可以用这种方式设置为可配置的非常简单的Dashlet的工作示例,请参阅http://code.google.com/p/alfresco-get-latest-document。此博客文章设置了基本功能:http://ecmarchitect.com/archives/2012/05/08/1592。此博客文章扩展了这一点,以使初始Dashlet可配置:http://ecmarchitect.com/archives/2012/05/15/1599

在比较与我的FTL,我想知道,如果你的DIV类/ ID需要遵循这个模式:

<div class="dashlet getlatestdoc"> 
    <div id="getlatestdoc_title" class="title"> 
    ${title} 
    </div> 

否则,怎么会编辑按钮知道哪里来表现自己?

1

杰夫建议,你需要包括与为class属性的适当的值的标记中的dashlet的标题栏中<div>元素,如下

<div class="dashlet dashlet-1"> 
    <div class="title">Title</div> 
    <div class="body">Body content</div> 
</div> 

Alfresco.widget.DashletTitleBarActions情况下,你的内联JavaScript代码创建实例化它将寻找一个<div>与类title并将在那里添加动作。

我还向父div添加了一个dashlet类,这对于应用默认的dashlet样式是必需的。