2013-02-19 2 views
5

Недавно я установил Tridion 2011 SP1 с включенным модулем диспетчера SDL.Tridion 2011 SP1: Tridion GUI Ошибка Javascript с установленным менеджером переводов и Powertools 2011

Все работает нормально. Затем я установил Tridion 2011 Powertools, следуя процедуре установки.

При попытке перезагрузить GUI (кэш браузера опорожнить и параметр модификации инстанциирован для серверного элемента в WebRoot \ Configuration \ System.Config) я получаю следующее сообщение об ошибке: Javascript

SCRIPT5007: Unable to get value of the property 'getItemType': object is null or undefined
Dashboard_v6.1.0.55920.18_.aspx?mode=js, line 528 character 851

И вот обеспокоенный JS линия:

Tridion.TranslationManager.Commands.Save.prototype._isAvailable=function(c,a){var
e=c.getItem(0),f=$models.getItem(e),b=f.getItemType(),d=$models.getItem(this.getTmUri())

предыдущие строки Javascript имеют дело с другими командами TranslationManager, так что я предполагаю, что это своего рода TranslationManager команды регистрации или somehting.

Попытки просмотреть мое TRIDION публикацию, выбрав любую папку/strucutreGroup также дает ту же ошибку и правильный кадр (кадр содержания) не будет отображать все детали TRIDION а просто показать:

Loading ...

Кто-нибудь уже опытный подобный вопрос?

На данный момент у меня нет другого выбора, кроме комментирования секции Электроинструменты файл

Tridion_Home\web\WebUI\WebRoot\Configuration\System.Config

Спасибо, Франсуа

+0

ли в PowerTools на самом деле работает для вас? Что произойдет, если вы закомментируете Менеджер переводов и попробуйте Power Tools? –

+0

Да, PowerTools работают нормально (Count Items, Page Publisher). Если я прокомментирую Менеджер переводов, все работает отлично, включится PowerTools и больше ошибок Javascript. Я уже открыл билет @ Поддержка Tridion, но поскольку они не поддерживают PowerTools, они предложили мне опубликовать в Stackoverflow. Теперь, похоже, проблема связана с диспетчером переводов. –

ответ

1

Странное дело здесь в том, что он относится к Сохранить команду, которая не предназначена быть вызывается или используется с панели управления.

Я предлагаю отключить JS minification (фильтр JScriptMinifier в System.config), так как он, вероятно, покажет более правильные данные.

Другой полезной вещью будет этот стек вызовов ошибок.

-

Я не был в состоянии воспроизвести проблему с исходного вопроса, но следующее сообщение об ошибке, когда я установил PT:

PowerTools is not defined

, которая появляется в * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js, где он пытается зарегистрировать PowerToolsBase namespace вместо PowerTools.

I`ll удивляйтесь, если при добавлении

Type.registerNamespace("PowerTools");

в верхней части файла будет решить проблему, так как в моем случае это не ломится Целые Gui независимо от того, если TM включен или нет.

0

Я проверил * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js, но линия

Type.registerNamespace("PowerTools");

был уже там, поэтому не проблема здесь.

Кроме того, я отключил мини-классификацию JS. Вот основные методы, которые пользовательский интерфейс загружает до получения ошибки:

... 
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]); 
}; 
0

Ok. Теперь ясно.

PowerTools.Commands.ItemCommenting используется в панели инструментов панели инструментов. Эта команда использует Сохраните, чтобы проверить его наличие.

В то же время ТМ считает, что «Сохранить» будет использоваться только на ItemToolbar.

Разница между этими панелями инструментов, которые вызывают проблему, заключается в том, что представление панели мониторинга может иметь выбор по длине, когда в представлении Item всегда будет выбран один элемент (в настоящее время открыт).

Открытие пустого выбора панели еще не сделано, ItemComment пытается проверить его доступность, вызывая Save, который вызывает все его расширения. И до сих пор, как выбор пуст

var itemUri = selection.getItem(0);

возвратит нуля, а также

$models.getItem(null)

Что вы можете сделать, чтобы удалить команду расширения ItemCommenting, как это делается в TRIDION редакторе магистрального PowerTool .config.

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

+0

Большое спасибо UI Beardcore! Это сделал трюк. Теперь больше нет ошибок JS и Powertools, за исключением того, что CountItems всегда возвращают тот же результат независимо от выбранной мной папки ... но это должна быть еще одна не связанная с этим проблема. –