2013-02-19 10 views
5

Niedawno zainstalowałem Tridion 2011 SP1 z włączonym Menedżerem tłumaczeń SDL.Tridion 2011 SP1: Tridion GUI Javascript error with Translation Manager i Powertools 2011 installed

Wszystko działało dobrze. Następnie zainstalowałem Trapion 2011 Powertools, zgodnie z procedurą instalacji.

Gdy próbuje przeładować GUI (cache przeglądarki opróżniane i parametr modyfikacja instanciated dla elementu serwera w WebRoot \ Configuration \ System.Config) dostaję następujący błąd 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

I tu jest zaniepokojony linia 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())

Powyższe linie Javascript do czynienia z innymi poleceniami TranslationManager, więc przypuszczam, że jest to rodzaj TranslationManager nakazuje rejestrację lub somehting.

Próbując przeglądać moje tridion publikacje wybierając dowolny folder/strucutreGroup również daje ten sam błąd i prawą ramkę (zawartość ramki) nie pokaże żadnych przedmiotów tridion ale po prostu wyświetli:

Loading ...

już nikogo miałeś podobny problem?

Na razie nie mam innego wyboru niż zakomentowanie sekcje Elektronarzędzia złożyć

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

Dziękuję François

+0

Czy te PowerTools faktycznie pracować dla Ciebie? Co się stanie, jeśli zamiast tego skomentujesz Menedżera tłumaczeń i wypróbujesz Narzędzia elektryczne? –

+0

Tak, PowerTools działają poprawnie (Count Items, Page Publisher). Jeśli zamiast tego skomentuję Menedżera tłumaczeń, wszystko działa dobrze, zawiera narzędzia PowerTools i nie ma już błędów JavaScript. już otwarty bilet @ Tridion Wsparcie, ale ponieważ nie obsługują PowerTools zasugerowali mi odpowiedzieć na Stackoverflow. Teraz wygląda na to, że problem jest naprawdę związany z Menedżerem tłumaczeń. –

Odpowiedz

1

Dziwne jest to, że odnosi się ono do Zapisz polecenie, które nie jest przeznaczone do wywoływane lub używane z Dashboard.

Polecam wyłączyć minowanie JS (filtr JScriptMinifier w System.config), ponieważ prawdopodobnie pokaże więcej poprawnych szczegółów.

Inną użyteczną rzeczą byłby ten stos wywołań błędów.

-

nie byłem w stanie odtworzyć problemu z początkowe pytanie, ale miał następujący błąd, gdy zainstalowany PT:

PowerTools is not defined

który pojawia się w \ * \ Elektronarzędzia Editor \ PowerTools \ Klient \ Wspólne \ Skrypty \ ProgressDialog \ ProgressDialog.js, gdzie próbuje zarejestrować obszar nazw PowerToolsBase zamiast PowerTools.

`ll być zaskoczony, jeśli dodanie

Type.registerNamespace("PowerTools");

na początku pliku będzie rozwiązać problem, jak w moim przypadku było to złamanie całą GUI bez względu na to, czy TM włączone lub nie.

0

Sprawdziłem * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js, ale linia była już tam, więc nie problem tutaj.

Ponadto, wyłączył minifikacji JS. Oto główne metody ładowania się interfejsu użytkownika przed otrzymaniem błędu:

... 
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. Teraz jest jasne.

PowerTools.Commands.ItemCommenting służy do paska narzędzi Dashboard. To polecenie używa zapisz, aby sprawdzić jego dostępność.

W tym samym czasie TM uważa, że ​​„Zapisz”, będą wykorzystywane wyłącznie na ItemToolbar.

różnicy między tym paski narzędzi, które powodują problem jest to, że widok Dashboard może mieć żadnych długości wyboru, kiedy widok Rzecz zawsze mają wybór posiadające jedną pozycję (obecnie otwarty).

Otwarcie wybór pusta tablica rozdzielcza nie jest jeszcze podjęta, ItemCommenting próbuje sprawdzić jego dostępność, dzwoniąc Zapisz, który wzywa wszystkich rozszerzeń. I o ile wybór jest pusty

var itemUri = selection.getItem(0);

powróci NULL, jak również

$models.getItem(null)

Co można zrobić, jest usunięcie polecenia przedłużacza ItemCommenting jak to się robi w tridion edytorze powertool bagażnika .config.

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

+0

Dziękuję bardzo UI Beardcore! Zrobiło to. Nie więcej błędów JS i Powertools wydaje się teraz działać dobrze, z tym wyjątkiem, że CountItems zawsze zwracają ten sam wynik niezależnie od wybranego folderu ... ale musi to być inny niepowiązany problem. –

Powiązane problemy