From 8d6bd510948cc8598e7cfbb9ebb545fb97795661 Mon Sep 17 00:00:00 2001
From: Matias Niemelä
Date: Fri, 26 Jul 2013 18:41:39 -0400
Subject: fix(ngdocs): make jsFiddle and Plunkr links work with external
 AngularJS modules
---
 docs/src/templates/js/docs.js | 109 +++++++++++++++++++++++++++++++++---------
 1 file changed, 86 insertions(+), 23 deletions(-)
(limited to 'docs')
diff --git a/docs/src/templates/js/docs.js b/docs/src/templates/js/docs.js
index 1413a0de..710e5f63 100644
--- a/docs/src/templates/js/docs.js
+++ b/docs/src/templates/js/docs.js
@@ -357,32 +357,85 @@ docsApp.serviceFactory.formPostData = function($document) {
   };
 };
 
-docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, angularUrls) {
-  return function(content) {
+
+
+docsApp.serviceFactory.prepareEditorAssetTags = function(angularUrls) {
+  return function(content, options) {
+    options = options || {};
+    var includeLocalFiles = options.includeLocalFiles;
+    var html = makeScriptTag(angularUrls['angular.js']);
+
     var allFiles = [].concat(content.js, content.css, content.html, content.json);
-    var indexHtmlContent = '\n' +
-        '\n' +
-        '  
\n' +
-        '    \n' +
-        '{{scriptDeps}}\n' +
-        '  \n' +
-        '  \n\n' +
-        '{{indexContents}}' +
-        '\n\n  \n' +
-        '\n';
-    var scriptDeps = '';
     angular.forEach(content.deps, function(file) {
       if (file.name !== 'angular.js') {
-        scriptDeps += '    \n';
+        var isLocal = false;
+        for(var i=0;i\n';
+    };
+
+    function makeCssLinkTag(src) {
+      return '\n';
+    };
+  };
+};
+
+
+docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, prepareEditorAssetTags) {
+  return function(content) {
+    var hasRouting = false;
+    angular.forEach(content.deps, function(file) {
+      hasRouting = hasRouting || file.name == 'angular-route.js';
+    });
+    var indexHtmlContent = '\n' +
+        '\n' +
+        '  \n' +
+        '{{scriptDeps}}';
+
+    if(hasRouting) {
+        indexHtmlContent += '\n';
+    }
+
+    indexHtmlContent += '\n' +
+                        '  \n\n' +
+                        '{{indexContents}}\n\n' +
+                        '  \n' +
+                        '\n';
+
     indexProp = {
       module: content.module,
-      angularJSUrl: angularUrls['angular.js'],
-      scriptDeps: scriptDeps,
+      scriptDeps: prepareEditorAssetTags(content, { includeLocalFiles : true }),
       indexContents: content.html[0].content
     };
     var postData = {};
+
+    var allFiles = [].concat(content.js, content.css, content.html, content.json);
     angular.forEach(allFiles, function(file, index) {
       if (file.content && file.name != 'index.html') {
         postData['files[' + file.name + ']'] = file.content;
@@ -399,13 +452,14 @@ docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, angula
   };
 };
 
-docsApp.serviceFactory.openJsFiddle = function(templateMerge, formPostData, angularUrls) {
-
+docsApp.serviceFactory.openJsFiddle = function(templateMerge, formPostData, prepareEditorAssetTags) {
   var HTML = '\n{{html:2}}
',
-      CSS = '  \n' +
+      CSS = '  \n' +
         '{{head:0}}