Tridion 2011 SP1:安装了翻译管理器和Powertools 2011的Tridion GUI Javascript错误

时间:2013-02-19 14:38:16

标签: javascript translation tridion

我最近安装了Tridion 2011 SP1并启用了SDL模块翻译管理器。

一切都很好。然后我按照安装程序安装了Tridion 2011 Powertools。

当尝试重新加载GUI(浏览器缓存已清空并且为WebRoot \ Configuration \ System.Config中的服务器元素实例化修改参数)时,我收到以下Javascript错误:

  

SCRIPT5007:无法获取属性'getItemType'的值:object为null或undefined
     Dashboard_v6.1.0.55920.18_.aspx?mode = js,line 528 character 851

这是相关的JS系列:

  

Tridion.TranslationManager.Commands.Save.prototype._isAvailable =函数(C,A){风险
     e = c.getItem(0),f = $ models.getItem(e),b = f.getItemType(),d = $ models.getItem(this.getTmUri())

前面的Javascript行正在处理其他的TranslationManager命令,所以我认为它是一种TranslationManager命令注册或somehting。

通过选择任何文件夹/ strucutreGroup来尝试浏览我的Tridion出版物也会产生相同的错误,而右框架(内容框架)将不会显示任何Tridion项目,只是显示:

  

正在加载......

有没有人遇到类似的问题?

现在除了评论Powertools部分文件

之外我别无选择
  

Tridion_Home \网络\ WebUI中\的WebRoot \配置\ System.Config

谢谢你, 弗朗索瓦

3 个答案:

答案 0 :(得分:1)

这里奇怪的是它引用了Save命令,它不打算从Dashboard调用或使用。

我建议禁用JS minification(System.config中的JScriptMinifier过滤器),因为它可能会显示更正确的细节。

另一个有用的东西就是这个错误调用堆栈。

-

我无法从初始问题重现问题,但在安装PT时出现以下错误:

  

未定义PowerTools

出现在 * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js,它尝试注册 PowerToolsBase 命名空间,而不是 PowerTools

如果添加

,我会感到惊讶
  

Type.registerNamespace( “PowerTools的”);

文件顶部的

将解决问题,因为在我的情况下,无论是否包含TM,它都会破坏整个GUI。

答案 1 :(得分:0)

我检查了* \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js,但行

  

Type.registerNamespace( “PowerTools的”);

已经存在,所以这里没有问题。

另外,我禁用了JS缩小版。以下是在获取错误之前UI正在加载的主要方法:

...
PowerTools.Commands.ItemCommenting.prototype.isValidSelection = function (selection) {
//Use the existing Save command from the CME
return $cme.getCommand("Save")._isEnabled(selection);
}

...

/**
* Executes this command on the selection.
* Override this method to implement the actual functionality.
* @param {Tridion.Core.Selection} selection The current selection.
*/
Tridion.TranslationManager.Commands.SendForTranslation.prototype._execute = function SendForTranslation$_execute(selection)
{
    var selectedItems = selection.getItems();
    if (selectedItems.length == 1)
    {
        var job = $models.getItem(selectedItems[0]);

        if (job)
        {
            if (job.isLoaded())
            {
                job.saveAndSend();
            }
            else
            {
                $log.warn("Unable to send an unloaded job?! {0}".format(job.getId()));
            }
        }
        else
        {
            $log.warn("Unable to execute save-and-send-for-translation for this selection: {0}".format(selectedItems));
        }
    }
    else
    {
        $log.warn("Unable to save-and-send-for-translation multiple items at a time.");
    }
};

...

Tridion.TranslationManager.Commands.Save.prototype._isAvailable = function Save$_isAvailable(selection, pipeline)
{
    var itemUri = selection.getItem(0);
    var item = $models.getItem(itemUri);
    var itemType = item.getItemType();     !!!!!!!!! fails on this line !!!!!! item is null or not an object
    var config = $models.getItem(this.getTmUri());


    if (pipeline)
    {
        pipeline.stop = false;
    }

    if (config && config.hasChanged() && (itemType == $const.ItemType.CATEGORY || itemType == $const.ItemType.FOLDER || itemType == $const.ItemType.STRUCTURE_GROUP || itemType == $const.ItemType.PUBLICATION))
    {
        if (pipeline)
        {
            pipeline.stop = true;
        }

        return true;
    }

    return this.callBase("Tridion.Cme.Command", "_isAvailable", [selection, pipeline]);
};

答案 2 :(得分:0)

确定。现在很清楚了。

仪表板工具栏中使用了

PowerTools.Commands.ItemCommenting 。 此命令使用保存检查其可用性。

同时,TM认为“保存”只会在ItemToolbar上使用。

导致问题的工具栏之间的区别在于,当项目视图始终具有包含一个项目(当前已打开)的选项时,仪表板视图可以具有任意长度选择。

尚未打开空的仪表板选择,ItemCommenting尝试通过调用Save来检查其可用性,Save调用其所有扩展名。而选择是空的

  

var itemUri = selection.getItem(0);

将返回 null ,以及

  

$ models.getItem(空)

您可以做的是删除ItemCommenting扩展命令,因为它在tridion powertool trunk editor.config中完成。

http://code.google.com/p/tridion-2011-power-tools/source/browse/trunk/PowerTools.Editor/Configuration/editor.config?spec=svn942&r=903 [592]