123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- angular.module('plunker', [])
- .factory('plunkGenerator', function ($document) {
- return function (ngVersion, bsVersion, version, module, content) {
- var form = angular.element('<form style="display: none;" method="post" action="http://plnkr.co/edit/?p=preview" target="_blank"></form>');
- var addField = function (name, value) {
- var input = angular.element('<input type="hidden" name="' + name + '">');
- input.attr('value', value);
- form.append(input);
- };
- var indexContent = function (content, version) {
- return '<!doctype html>\n' +
- '<html ng-app="ui.bootstrap.demo">\n' +
- ' <head>\n' +
- ' <script src="//ajax.googleapis.com/ajax/libs/angularjs/'+ngVersion+'/angular.js"></script>\n' +
- ' <script src="//ajax.googleapis.com/ajax/libs/angularjs/'+ngVersion+'/angular-animate.js"></script>\n' +
- ' <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-'+version+'.js"></script>\n' +
- ' <script src="example.js"></script>\n' +
- ' <link href="//netdna.bootstrapcdn.com/bootstrap/'+bsVersion+'/css/bootstrap.min.css" rel="stylesheet">\n' +
- ' </head>\n' +
- ' <body>\n\n' +
- content + '\n' +
- ' </body>\n' +
- '</html>\n';
- };
- var scriptContent = function(content) {
- return "angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);" + "\n" + content;
- };
- addField('description', 'http://angular-ui.github.io/bootstrap/');
- addField('files[index.html]', indexContent(content.markup, version));
- addField('files[example.js]', scriptContent(content.javascript));
- $document.find('body').append(form);
- form[0].submit();
- form.remove();
- };
- })
- .controller('PlunkerCtrl', function ($scope, plunkGenerator) {
- $scope.content = {};
- $scope.edit = function (ngVersion, bsVersion, version, module) {
- plunkGenerator(ngVersion, bsVersion, version, module, $scope.content);
- };
- })
- .directive('plunkerContent', function () {
- return {
- link:function (scope, element, attrs) {
- scope.content[attrs.plunkerContent] = element.text().trim();
- }
- }
- });
|