4

Since we are migrating from 2013sp1 hr1 to Web8.5, I am upgrading all GUI extensions. For new namespaces, I found a list here: SDLWeb 8.5 and SDL tridion 2013 JavaScript namespaces conflicts Do we have all namespaces covered in this list?

Also, while trying to use these namespaces and also modifying few deprecated methods to new ones, I am getting this javascript error.

Uncaught TypeError: e is not a constructor
    at Object.Tridion.ControlRegistry.getControl (coreresource_v8.5.0.22656.28_.js?sav=1&cnt=core:64)
    at Tridion.Cme.Views.Dashboard.initializeControls (Dashboard_v8.5.0.22656.28_.aspx?mode=js:1258)
    at Tridion.Cme.Views.DashboardBase.initialize (Dashboard_v8.5.0.22656.28_.aspx?mode=js:1254)
    at Tridion.Cme.Views.Dashboard.eval [as callBase] (coreresource_v8.5.0.22656.28_.js?sav=1&cnt=core:23)
    at Tridion.Cme.Views.Dashboard.eval (Dashboard_v8.5.0.22656.28_.aspx?mode=js:1258)
    at eval (coreresource_v8.5.0.22656.28_.js?sav=1&cnt=core:13)
    at i (Dashboard_v8.5.0.22656.28_.aspx?mode=js:1258)
    at Tridion.ContentManager.UserSettings.u (coreresource_v8.5.0.22656.28_.js?sav=1&cnt=models:37)
    at Tridion.EventRegisterClass.executeListener (coreresource_v8.5.0.22656.28_.js?sav=1&cnt=core:30)
    at Tridion.ContentManager.UserSettings.i (coreresource_v8.5.0.22656.28_.js?sav=1&cnt=core:30)

Do we have any way to make sure that all javascript files in GUI extension (Editor and commands) are valid - with respect to Web8.5.

Edit 1:

I am not sure the root cause of this error, but was able to resolve all issues related to GUI extension by following changes:

  • this.addInterface('Tridion.Cme.View'); ==> this.addInterface('Tridion.Web.UI.Editors.Base.Views.ViewBase');
  • $controls.controls["Tridion.Controls.MultiMediaLinkControl"]; ==> $controls.controls["Tridion.Web.UI.Editors.Base.Controls.MultiMediaLinkControl"];
  • $popup.create($cme.Popups.OPEN_ITEM_OPTIONS.URL, $cme.Popups.OPEN_ITEM_OPTIONS.FEATURES, args); ==> $popup.create(Tridion.Web.UI.Editors.CME.Constants.Popups.OPEN_ITEM_OPTIONS.URL, Tridion.Web.UI.Editors.CME.Constants.Popups.OPEN_ITEM_OPTIONS.FEATURES, args);
  • Resources: Tridion.Web.UI.Strings, SelectItem ==> Resources: Tridion.Web.UI.Editors.CME.Strings, SelectItem
  • this.addInterface("Tridion.Cme.Command", ["NewCommand"]); ==> this.addInterface("Tridion.Web.UI.Editors.Base.Commands.CommandBase", ["NewCommand"]);
  • Tridion.Controls.Popup.create() ==> $popupManager.createExternalContentPopup()
  • Tridion.Controls.Popup.Type.MODAL_IFRAME ==> Tridion.Controls.PopupManager.Type.MODAL_IFRAME
  • Tridion.Web.UI.Editors.CME.Views.Popups; ==> Tridion.Web.UI.Editors.Base.Views.Popups;
  • Type.enableInterface(this, "XYZ"); ==> Tridion.OO.enableInterface(this, "XYZ");
  • Tridion.Web.UI.Editors.CME ==> SDL.Web.UI.Editors.CME
  • Tridion.Web.UI.Editors.CME.commands ==> SDL.Web.UI.Editors.CME.CommandSets.All
  • merger="Tridion.Web.UI.Core.Configuration.Resources.CommandGroupProcessor" ==> merger="SDL.Web.UI.Core.Configuration.Resources.CommandGroupProcessor"
  • merger="Tridion.Web.UI.Core.Configuration.Resources.DomainModelProcessor" ==> merger="SDL.Web.UI.Core.Configuration.Resources.DomainModelProcessor"

Putting it all here, so it would help others. Thanks.

5

I can't say for sure if the list is exhaustive. But to answer you last question: there's no way to know besides testing it thoroughly.

As for the error you are getting, my first suggestion would be to make sure your script files are not being minified - by changing the "enabled" attribute to "never" for "JScriptMinifier" in System.config. Then you should be able to debug through the code and see what is causing the error. The stack traces will also be more helpful as the line numbers will be correct.

  • 1
    Hi Peter, after commenting out all commandsets and enabling one by one, i found that i was using incorrect namespace "Tridion.Web.UI.Editors.Base.Commands" insteading of using the correct one "Tridion.Web.UI.Editors.Base.Commands.CommandBase". Also, i was trying to debug javascript by adding js alerts, but by making "JScriptMinifier" to never would save hell lot of time for me. Thanks a lot :) – Saurabh Mehndiratta Dec 14 '17 at 22:58
  • No problem. Perhaps you'd like to accept my answer then? That will let other people know what worked for you. – Peter Kjaer Dec 19 '17 at 9:44
0

There is new class Tridion.Web.UI.Editors.Base.Views.ViewBase in Base editor. It is new name of Tridion.Cme.View, base class for all views. In 7.1 it was not mandatory to inherit this class but in 8.1 it is, otherwise view will hung with infinite loading indicator.

  • Thanks Sudhakar. I found the issue in my configuration file and now working fine. The list that you have provided is very helpful. – Saurabh Mehndiratta Dec 14 '17 at 22:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.