diff --git a/grails-app/assets/javascripts/streama/controllers/dash-ctrl.js b/grails-app/assets/javascripts/streama/controllers/dash-ctrl.js index e69d90346..88721c248 100644 --- a/grails-app/assets/javascripts/streama/controllers/dash-ctrl.js +++ b/grails-app/assets/javascripts/streama/controllers/dash-ctrl.js @@ -124,11 +124,6 @@ angular.module('streama').controller('dashCtrl', alertify.alert('You need to fill out some required base-settings. You will be redirected to the settings page now.', function () { $state.go('settings.settings'); }); - }else{ - apiService.settings.checkImageIntegrity().then(function (imageIntegrityResponse) { - var imageIntegrityResult = imageIntegrityResponse.data; - console.log('%c imageIntegrityResult', 'color: deeppink; font-weight: bold; text-shadow: 0 0 5px deeppink;', imageIntegrityResult); - }); } }); return settingsPromise; diff --git a/grails-app/assets/javascripts/streama/directives/streama-wysiwyg-directive.js b/grails-app/assets/javascripts/streama/directives/streama-wysiwyg-directive.js new file mode 100644 index 000000000..8cb8ac75d --- /dev/null +++ b/grails-app/assets/javascripts/streama/directives/streama-wysiwyg-directive.js @@ -0,0 +1,41 @@ +//= wrapped + +angular.module('streama') + .directive('streamaWysiwyg', function () { + return { + require: 'ngModel', + restrict: 'E', + template: '
', + scope: { + }, + link: function ($scope, $elem, $attrs, $ctrl) { + + var toolbarOptions = [ + ['bold', 'italic', 'underline'], // toggled buttons + [{ 'list': 'ordered'}, { 'list': 'bullet' }], + [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown + [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme + [{ 'font': [] }], + [{ 'align': [] }], + ['clean'] // remove formatting button + ]; + + $ctrl.$render = render; + var quill = new Quill($elem[0], { + theme: 'bubble', + modules: { + toolbar: toolbarOptions + } + }); + quill.on('text-change', onTextChange); + + function onTextChange(delta, oldDelta, source) { + $ctrl.$setViewValue(quill.root.innerHTML); + } + + function render() { + quill.root.innerHTML = $ctrl.$modelValue; + } + } + } +}); diff --git a/grails-app/assets/javascripts/streama/services/filters.js b/grails-app/assets/javascripts/streama/services/filters.js index f0cb90397..9dc9ca6db 100644 --- a/grails-app/assets/javascripts/streama/services/filters.js +++ b/grails-app/assets/javascripts/streama/services/filters.js @@ -32,6 +32,12 @@ angular.module('streama').filter('trustResourceUrl', ['$sce', function($sce) { }; }]); +angular.module('streama').filter('trustHtml', ['$sce', function($sce) { + return function(input) { + return $sce.trustAsHtml(input); + }; +}]); + function pad(n, width, z) { z = z || '0'; diff --git a/grails-app/assets/javascripts/streama/templates/settings-settings.tpl.htm b/grails-app/assets/javascripts/streama/templates/settings-settings.tpl.htm index 24fa451b9..f349de3cc 100644 --- a/grails-app/assets/javascripts/streama/templates/settings-settings.tpl.htm +++ b/grails-app/assets/javascripts/streama/templates/settings-settings.tpl.htm @@ -44,6 +44,9 @@

+
+ +
diff --git a/grails-app/assets/stylesheets/_misc.scss b/grails-app/assets/stylesheets/_misc.scss index 81a320846..405bff5c0 100644 --- a/grails-app/assets/stylesheets/_misc.scss +++ b/grails-app/assets/stylesheets/_misc.scss @@ -34,4 +34,10 @@ background-color: darken($primary, 50%); } - +streama-wysiwyg{ + display: block; + background: rgba(255, 255, 255, 0.07); +} +.ql-bubble .ql-tooltip { + z-index: 999; +} diff --git a/grails-app/services/streama/DefaultDataService.groovy b/grails-app/services/streama/DefaultDataService.groovy index f2293ab9e..f214eb6ca 100644 --- a/grails-app/services/streama/DefaultDataService.groovy +++ b/grails-app/services/streama/DefaultDataService.groovy @@ -223,6 +223,15 @@ class DefaultDataService { value: 'false', required: false, validationRequired: false + ], + [ + settingsKey: 'Footer Content', + name: 'footer-content', + description: 'HTML Content for the Footer', + settingsType: 'wysiwyg', + value: '', + required: false, + validationRequired: false ], // [ // settingsKey: 'Remove Source After Convert', diff --git a/grails-app/views/index.gsp b/grails-app/views/index.gsp index f225d8d3b..4b73a17d6 100644 --- a/grails-app/views/index.gsp +++ b/grails-app/views/index.gsp @@ -13,6 +13,8 @@ } + + @@ -40,6 +42,7 @@ + diff --git a/grails-app/views/templates/_footer.gsp b/grails-app/views/templates/_footer.gsp index c576582d2..634d0b5b0 100644 --- a/grails-app/views/templates/_footer.gsp +++ b/grails-app/views/templates/_footer.gsp @@ -3,4 +3,6 @@
v${grailsApplication.metadata.getApplicationVersion()}
+ +