'use strict'; angular.module('app.write', ['ngRoute']) .config(['$routeProvider', function($routeProvider) { $routeProvider.when('/write', { templateUrl: 'views/write/write.html', controller: 'WriteCtrl' }); }]) .controller('WriteCtrl', function($scope, $rootScope, $http, toastr) { $scope.post = { title: "", content: "", summary: "" }; var editor = new MediumEditor('.editable', { toolbar: { /* These are the default options for the toolbar, if nothing is passed this is what is used */ allowMultiParagraphSelection: true, buttons: ['bold', 'italic', 'underline', 'anchor', 'h2', 'h3', 'quote'], diffLeft: 0, diffTop: -10, firstButtonClass: 'medium-editor-button-first', lastButtonClass: 'medium-editor-button-last', relativeContainer: null, standardizeSelectionStart: false, static: false, /* options which only apply when static is true */ align: 'center', sticky: false, updateOnEmptySelection: false }, autoLink: true, placeholder: { text: 'Start to writting your decentralized blog post...' } }).subscribe('editableInput', function(event, editable) { // Do some work $scope.post.content = editable.innerHTML; }); $scope.publicate = function() { //add the thumbimg to ipfs var formdata = new FormData(); formdata.append("file", $scope.file); $http({ url: ipfsurl + 'add', method: "POST", headers: { "Content-Type": undefined }, data: formdata }) .then(function(data) { console.log("data: "); console.log(data.data); $scope.post.thumbimg = data.data.Hash; toastr.success("Thumb image added to IPFS"); $scope.publicate2(); }, function(data) { console.log(data); toastr.error("Error adding Model to IPFS"); }); }; $scope.publicate2 = function() { //$scope.post.thumbimg = hash; //send the post content to the Go api, that will add the html content to ipfs console.log("post", $scope.post); $http({ url: apiurl + 'post', method: "POST", headers: { "Content-Type": undefined }, data: $scope.post }) .then(function(data) { console.log("data: "); console.log(data.data); window.location = "#!/main"; }, function(data) { console.log(data); }); }; }).directive('fileModel', ['$parse', function($parse) { //directive code from https://www.tutorialspoint.com/angularjs/angularjs_upload_file.htm return { restrict: 'A', link: function(scope, element, attrs) { var model = $parse(attrs.fileModel); var modelSetter = model.assign; element.bind('change', function() { scope.$apply(function() { modelSetter(scope, element[0].files[0]); }); }); } }; }]);