@@ -358,6 +358,22 @@ docsApp.serviceFactory.formPostData = function($document) {
358
358
} ;
359
359
360
360
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
+ } ;
361
377
362
378
docsApp . serviceFactory . prepareEditorAssetTags = function ( angularUrls ) {
363
379
return function ( content , options ) {
@@ -402,16 +418,16 @@ docsApp.serviceFactory.prepareEditorAssetTags = function(angularUrls) {
402
418
} ;
403
419
404
420
405
- docsApp . serviceFactory . openPlunkr = function ( templateMerge , formPostData , prepareEditorAssetTags ) {
421
+ docsApp . serviceFactory . openPlunkr = function ( templateMerge , formPostData , prepareEditorAssetTags , prepareDefaultAppModule ) {
406
422
return function ( content ) {
407
423
var hasRouting = false ;
408
424
angular . forEach ( content . deps , function ( file ) {
409
425
hasRouting = hasRouting || file . name == 'angular-route.js' ;
410
426
} ) ;
411
427
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}}' ;
415
431
416
432
if ( hasRouting ) {
417
433
indexHtmlContent += '<script type="text/javascript">\n' +
@@ -433,9 +449,31 @@ docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, prepar
433
449
scriptDeps : prepareEditorAssetTags ( content , { includeLocalFiles : true } ) ,
434
450
indexContents : content . html [ 0 ] . content
435
451
} ;
436
- var postData = { } ;
437
452
438
453
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
+
439
477
angular . forEach ( allFiles , function ( file , index ) {
440
478
if ( file . content && file . name != 'index.html' ) {
441
479
postData [ 'files[' + file . name + ']' ] = file . content ;
@@ -452,10 +490,10 @@ docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, prepar
452
490
} ;
453
491
} ;
454
492
455
- docsApp . serviceFactory . openJsFiddle = function ( templateMerge , formPostData , prepareEditorAssetTags ) {
493
+ docsApp . serviceFactory . openJsFiddle = function ( templateMerge , formPostData , prepareEditorAssetTags , prepareDefaultAppModule ) {
456
494
var HTML = '<div ng-app=\"{{module}}\">\n{{html:2}}</div>' ,
457
495
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}}' ,
459
497
SCRIPT = '{{script}}' ,
460
498
SCRIPT_CACHE = '\n\n<!-- {{name}} -->\n<script type="text/ng-template" id="{{name}}">\n{{content:2}}</script>' ,
461
499
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
468
506
css : '' ,
469
507
script : ''
470
508
} ;
509
+ if ( ! prop . module ) {
510
+ var moduleData = prepareDefaultAppModule ( content ) ;
511
+ prop . script = moduleData . script ;
512
+ prop . module = moduleData . module ;
513
+ } ;
471
514
472
515
angular . forEach ( content . html , function ( file , index ) {
473
516
if ( index ) {
0 commit comments