@@ -358,6 +358,22 @@ docsApp.serviceFactory.formPostData = function($document) {
358358} ;
359359
360360
361+ docsApp . serviceFactory . prepareDefaultAppModule = function ( ) {
362+ return function ( content ) {
363+ var deps = [ ] ;
364+ angular . forEach ( content . deps , function ( file ) {
365+ if ( file . name == 'angular-animate.js' ) {
366+ deps . push ( 'ngAnimate' ) ;
367+ }
368+ } ) ;
369+
370+ var moduleName = 'App' ;
371+ return {
372+ module : moduleName ,
373+ script : "angular.module('" + moduleName + "', ['" + deps . join ( "','" ) + "']);\n\n"
374+ } ;
375+ } ;
376+ } ;
361377
362378docsApp . serviceFactory . prepareEditorAssetTags = function ( angularUrls ) {
363379 return function ( content , options ) {
@@ -402,16 +418,16 @@ docsApp.serviceFactory.prepareEditorAssetTags = function(angularUrls) {
402418} ;
403419
404420
405- docsApp . serviceFactory . openPlunkr = function ( templateMerge , formPostData , prepareEditorAssetTags ) {
421+ docsApp . serviceFactory . openPlunkr = function ( templateMerge , formPostData , prepareEditorAssetTags , prepareDefaultAppModule ) {
406422 return function ( content ) {
407423 var hasRouting = false ;
408424 angular . forEach ( content . deps , function ( file ) {
409425 hasRouting = hasRouting || file . name == 'angular-route.js' ;
410426 } ) ;
411427 var indexHtmlContent = '<!doctype html>\n' +
412- '<html ng-app="{{module}}">\n' +
413- ' <head>\n' +
414- '{{scriptDeps}}' ;
428+ '<html ng-app="{{module}}">\n' +
429+ ' <head>\n' +
430+ '{{scriptDeps}}' ;
415431
416432 if ( hasRouting ) {
417433 indexHtmlContent += '<script type="text/javascript">\n' +
@@ -433,9 +449,31 @@ docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, prepar
433449 scriptDeps : prepareEditorAssetTags ( content , { includeLocalFiles : true } ) ,
434450 indexContents : content . html [ 0 ] . content
435451 } ;
436- var postData = { } ;
437452
438453 var allFiles = [ ] . concat ( content . js , content . css , content . html , content . json ) ;
454+
455+ if ( ! content . module ) {
456+ var moduleData = prepareDefaultAppModule ( content ) ;
457+ indexProp . module = moduleData . module ;
458+
459+ var found = false ;
460+ angular . forEach ( content . js , function ( file ) {
461+ if ( file . name == 'script.js' ) {
462+ file . content = moduleData . script + file . content ;
463+ found = true ;
464+ }
465+ } ) ;
466+ if ( ! found ) {
467+ indexProp . scriptDeps += '<script type="text/javascript" src="script.js"></script>\n' ;
468+ allFiles . push ( {
469+ name : 'script.js' ,
470+ content : moduleData . script
471+ } ) ;
472+ }
473+ } ;
474+
475+ var postData = { } ;
476+
439477 angular . forEach ( allFiles , function ( file , index ) {
440478 if ( file . content && file . name != 'index.html' ) {
441479 postData [ 'files[' + file . name + ']' ] = file . content ;
@@ -452,10 +490,10 @@ docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, prepar
452490 } ;
453491} ;
454492
455- docsApp . serviceFactory . openJsFiddle = function ( templateMerge , formPostData , prepareEditorAssetTags ) {
493+ docsApp . serviceFactory . openJsFiddle = function ( templateMerge , formPostData , prepareEditorAssetTags , prepareDefaultAppModule ) {
456494 var HTML = '<div ng-app=\"{{module}}\">\n{{html:2}}</div>' ,
457495 CSS = '</style> <!-- Ugly Hack to make remote files preload in jsFiddle --> \n' +
458- '{{head:0}}<style>\n.ng-invalid { border: 1px solid red; }\n {{css}}' ,
496+ '{{head:0}}<style>{{css}}' ,
459497 SCRIPT = '{{script}}' ,
460498 SCRIPT_CACHE = '\n\n<!-- {{name}} -->\n<script type="text/ng-template" id="{{name}}">\n{{content:2}}</script>' ,
461499 BASE_HREF_TAG = '<!-- Ugly Hack to make AngularJS routing work inside of jsFiddle -->\n' +
@@ -468,6 +506,11 @@ docsApp.serviceFactory.openJsFiddle = function(templateMerge, formPostData, prep
468506 css : '' ,
469507 script : ''
470508 } ;
509+ if ( ! prop . module ) {
510+ var moduleData = prepareDefaultAppModule ( content ) ;
511+ prop . script = moduleData . script ;
512+ prop . module = moduleData . module ;
513+ } ;
471514
472515 angular . forEach ( content . html , function ( file , index ) {
473516 if ( index ) {
0 commit comments