agneta-platform
Version:
Agneta Platform - Integrate and customize business applications
68 lines (52 loc) • 1.83 kB
JavaScript
/* Copyright 2017 Agneta Network Applications, LLC.
*
* Source file: theme/source/main/portal.js
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function() {
var app = window.angular.module('MainApp');
app.service('Portal', function(SocketIO, $rootScope, $route, $timeout) {
var socket = SocketIO.connect('portal');
this.socket = socket;
socket.media = SocketIO.connect('media');
socket.editor = SocketIO.connect('editor');
socket.on('page-saved', function(id) {
if ($rootScope.viewData.path == id) {
socket.once('page-reload', function() {
$timeout(function() {
$route.reload();
}, 10);
});
}
});
});
app.directive('portalEdit', function(Portal, $rootScope) {
return {
restrict: 'A',
link: function(scope, elem) {
var contentId = elem.attr('portal-edit');
var listener = 'content-change:' + $rootScope.viewData.path + ':' + contentId;
//console.log(listener);
Portal.socket.editor.on(listener, function(data) {
//console.log(data);
var value = data.value;
if (angular.isObject(value)) {
value = agneta.lng(value);
}
elem.html(value || '');
});
}
};
});
})();