2013-02-19 17 views
5

Recentemente ho installato Tridion 2011 SP1 con il modulo di conversione Translation Manager abilitato.Tridion 2011 SP1: Tridion GUI Errore Javascript con Translation Manager e Powertools 2011 installato

Tutto funzionava bene. Quindi ho installato Tridion 2011 Powertools, seguendo la procedura di installazione.

Quando si cerca di caricare l'interfaccia grafica (cache del browser svuotata e modifica dei parametri istanziare per l'elemento del server in WebRoot \ Configuration \ System.Config) sto ottenendo il seguente errore 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

Ed ecco il preoccupato linea 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())

Le linee di Javascript precedenti a che fare con altri comandi TranslationManager, quindi suppongo che è una sorta di TranslationManager comandi registrazione o somehting.

Cercando di passare in rassegna le mie pubblicazioni Tridion selezionando una qualsiasi cartella/strucutreGroup darà anche lo stesso errore e la giusta cornice (frame del contenuto) non verranno visualizzati tutti gli elementi Tridion ma semplicemente visualizzare:

Loading ...

ha già qualcuno ha riscontrato problemi simili?

Per ora non ho altra scelta che commentando il file delle sezioni Utensili

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

Grazie, François

+0

fare PowerTools effettivamente lavorare per voi? Cosa succede se commentate invece Translation Manager e provate gli strumenti di alimentazione? –

+0

Sì, i PowerTools funzionano correttamente (Count Items, Page Publisher). Se invece commento Translation Manager, tutto funziona perfettamente, inclusi i PowerTools e non più errori Javascript. Ho già aperto un ticket @ Tridion Support, ma poiché non supportano i PowerTools mi hanno suggerito di pubblicare su StackOverflow. Ora mi sembra che il problema sia realmente correlato a Translation Manager. –

risposta

1

cosa strana è che si riferisce a salvare il comando che non è destinato ad essere chiamato o utilizzato da Dashboard.

Si consiglia di disabilitare JS minification (filtro JScriptMinifier in System.config), poiché probabilmente mostrerà più dettagli corretti.

Un'altra cosa utile sarebbe questo stack di chiamata di errore.

-

non ero in grado di riprodurre un problema di domanda iniziale, ma avevano seguente errore quando ho installato PT:

PowerTools is not defined

che appare in * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js dove tenta di registrarsi PowerToolsBase namespace, anziché PowerTools.

`ll essere sorpreso se l'aggiunta di

Type.registerNamespace("PowerTools");

nella parte superiore del file sarà risolvere un problema, come nel mio caso si stava rompendo tutto il GUI, non importa se TM incluso o no.

0

Ho controllato * \ PowerTools \ Editor \ PowerTools \ Client \ Shared \ Scripts \ ProgressDialog \ ProgressDialog.js, ma la linea

Type.registerNamespace("PowerTools");

era già lì, quindi non il problema qui.

Inoltre, ho disabilitato il minisito JS. Ecco i principali metodi che l'interfaccia utente sta caricando prima di ottenere l'errore:

... 
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. Adesso è chiaro.

PowerTools.Commands.ItemCommenting viene utilizzato in Dashboard Toolbar. Questo comando utilizza Salva per verificare la disponibilità.

Allo stesso tempo TM pensa che "Salva" sarà utilizzato solo su un ItemToolbar.

La differenza tra queste barre degli strumenti che causano un problema è che la visualizzazione Dashboard potrebbe avere una selezione di lunghezza qualsiasi, quando la vista Articolo avrà sempre una selezione con un elemento (attualmente aperto).

L'apertura della selezione del cruscotto vuoto non è stata ancora effettuata, ItemCommenting prova a verificarne la disponibilità, chiamando Salva, che chiama tutte le sue estensioni. E finora la selezione è vuota

var itemUri = selection.getItem(0);

sarà tornare nulla, così come

$models.getItem(null)

Che cosa si può fare, è quello di rimuovere comando di estensione ItemCommenting come si è fatto in tridion editor di tronco 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

Grazie mille UI Beardcore! Ha fatto il trucco. Nessun altro errore JS e Powertools sembra funzionare correttamente ora, tranne che i CountItem restituiscono sempre lo stesso risultato indipendentemente dalla cartella che seleziono ... ma questo deve essere un altro problema non correlato. –