After a custom code is copied to the HTML section of a custom page it crashes Agile Central or does not save successfully.
To troubleshoot a custom app that seems to crash Agile Central or does not allow the custom page to be adequately saved after the code was pasted into HTML section of the page please try the following to narrow down the problem:
1. Can a different app be saved in a custom page without any problem?
Establishing that an app available from the formal AppSDK2 documentation can be loaded in a custom page successfully is the first step.
Note: It is outside of support's scope to write or troubleshoot custom code. We have Technical Services team that does it for a fee.
2. Can the custom app run externally, in the browser, outside of Agile Central?
If you are already using rally-app-builder node.js package as described in Developing Apps Externally guide you may already know the answer to this question. However there has been at least one report that a customer could not install rally-app-builder behind a corporate firewall on Windows due to this error:
"ECONNRESET tunneling socket could not be established cause=getaddreinfo ENOTFOUND proxy-server-address". The issue is not specific to rally-app-builder but to node.js packages in general.
You do not have to use rally-app-builder to test an app externally. The app code that you paste to custom page in order to deploy inside Agile Central must be a full, well formed html. This article assumes that it is a full, well formed html, hence it should be possible to run it on also on a localhost.
Please make sure that the URL to appsdk source is a fully qualified URL:
<script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0/sdk.js"></script>
Save the html file in a directory of your choice, and start an http server from that location.
If your subscription does not have jsonp enabled (jsonp is disabled by default) it is not possible to load an app over a file protocol. Only http protocol is supported by default. The simplest solution is to use a localhost. In this example python SimpleHTTPServer is used on port 3000.
If the app does not run externally, check the javascript console of your browser's DevTools for errors.
3. Pasting your code to a text editor like Notepad on Windows or TextEdit on Mac to strip formatting.
4. Minify your javascript code. There are online tools, and tools you may download for this purpose. After the javascript code is minified, you may replace your original un-minimified javascript inside your full HTML app with the minified version, and try to paste the app's HTML code (containing mimified js) to the HTML section of a custom page inside AgileCentral.
5. Use a tool that counts number of characters in the text. Next, generate a random text on (e.g. here). Paste that text to the HTML section of custom page inside AgileCentral. This will not be a functional app, but the goal here is to see if the text with the same number of characters can be successfully saved in a custom page. The attached App-uncompressed.html was used in this test to show that an app of 791KB size was successfully deployed in a AgileCentral custom page. To make sure that the random text in the <body> of the html code is not truncated, the end of the section includes <h3> and <h1> formatted text so that it is easily recognized.