2013-02-19 5 views
5

Ich habe vor kurzem installiert Tridion 2011 SP1 mit SDL-Modul Translation Manager aktiviert.Tridion 2011 SP1: Tridion GUI Javascript Fehler mit Translation Manager und Powertools 2011 installiert

Alles hat gut funktioniert. Dann habe ich die Tridion 2011 Powertools nach der Installation installiert.

Beim Versuch, die GUI (Browser-Cache geleert und Änderung Parameter für Server-Element in WebRoot \ Configuration \ system.config instanziiert) Ich erhalte die folgenden Javascript-Fehler erneut zu laden:

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

Und hier ist die besorgt JS Linie:

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())

Die vorstehenden Javascript Linien mit anderen Translation Befehle zu tun haben, so dass ich glaube, es ist eine Art Translation Befehle, Registrierung oder somehting.

Versuch, meine Tridion Publikationen zu durchsuchen, indem Sie einen beliebigen Ordner Auswahl/strucutreGroup auch den gleichen Fehler geben und den rechten Rahmen (Inhaltsrahmen) werden alle Tridion Artikel nicht angezeigt werden, sondern zeigen einfach:

Loading ...

Hat jemand schon ähnliches Problem erfahren?

Denn jetzt habe ich keine andere Wahl, als die Powertools Abschnitte

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

Danke Datei auszukommen, François

+0

Haben die Power tatsächlich für Sie arbeiten? Was passiert, wenn Sie stattdessen Translation Manager auskommentieren und die Power Tools ausprobieren? –

+0

Ja, die PowerTools funktionieren einwandfrei (Count Items, Page Publisher). Wenn ich den Translation Manager stattdessen auskommentiere, funktioniert alles einwandfrei, einschließlich der PowerTools und keine Javascript-Fehler mehr. Ich habe bereits ein Ticket @ Tridion Support geöffnet, aber da sie die PowerTools nicht unterstützen, haben sie mir vorgeschlagen, auf Stackoverflow zu posten. Jetzt sieht es für mich aus, dass das Problem wirklich mit Translation Manager zusammenhängt. –

Antwort

1

Merkwürdige daran ist, dass es Befehl speichern bezieht, die nicht dazu gedacht ist zu sein aufgerufen oder von Dashboard verwendet.

Ich würde vorschlagen, JS Minification (JScriptMinifier Filter in System.config) zu deaktivieren, wie es wahrscheinlich mehr korrekte Details zeigen wird.

Eine andere nützliche Sache wäre dieser Fehler Aufruf Stapel.

-

war ich nicht in der Lage ein Problem von der ersten Frage zu reproduzieren, hatte aber folgende Fehlermeldung, wenn ich PT installiert:

PowerTools is not defined

die * \ Power in erscheint \ Editor \ Power \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js, in dem es versucht, PowerToolsBase Namespace anstelle von PowerTools zu registrieren.

I `ll überrascht sein, wenn

Type.registerNamespace("PowerTools");

am Anfang der Datei ein Problem beheben wird das Hinzufügen, wie in meinem Fall ist es egal gesamte GUI wurde zu brechen, wenn TM enthält oder nicht.

0

Ich habe * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog überprüft.js, aber die Linie

Type.registerNamespace("PowerTools");

war schon da, also nicht das Problem hier.

Außerdem habe ich die JS-Verkleinerung deaktiviert. Hier sind die wichtigsten Methoden, die die Benutzeroberfläche geladen wird, bevor der Fehler angezeigt wird:

... 
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. Es ist jetzt klar.

PowerTools.Commands.ItemCommenting wird in der Dashboard-Symbolleiste verwendet. Dieser Befehl verwendet Speichern, um die Verfügbarkeit zu überprüfen.

Gleichzeitig denkt TM, dass "Speichern" nur auf einer ItemToolbar verwendet wird.

Der Unterschied zwischen diesen Symbolleisten, die ein Problem verursachen, besteht darin, dass die Dashboard-Ansicht eine beliebige Länge haben kann, wenn die Elementansicht immer eine Auswahl mit einem Element (derzeit geöffnet) enthält.

Das Öffnen der leeren Dashboard-Auswahl ist noch nicht erfolgt, ItemCommenting versucht die Verfügbarkeit zu überprüfen, indem er Save aufruft, wodurch alle seine Erweiterungen aufgerufen werden. Und so weit wie Auswahl leer ist

var itemUri = selection.getItem(0);

zurück null sowie

$models.getItem(null)

Was Sie tun können, ist ItemCommenting Erweiterungsbefehl zu entfernen, wie es in tridion Powertool Stamm-Editor erfolgt .config.

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

+0

Vielen Dank UI Beardcore! Es hat den Trick gemacht. Keine JS-Fehler mehr und Powertools scheint jetzt gut zu funktionieren, außer dass die CountItems immer das gleiche Ergebnis zurückgeben, egal welchen Ordner ich auswähle ... aber das muss ein anderes Problem sein. –

Verwandte Themen