##// END OF EJS Templates
angular: reorganize files
angular: reorganize files

File last commit:

r71:f925d629
r72:3c69f25a
Show More
channelstream.js
62 lines | 2.5 KiB | application/javascript | JavascriptLexer
channelstream: separate element and basic pubsub
r64 // # Copyright (C) 2010-2016 RhodeCode GmbH
// #
// # This program is free software: you can redistribute it and/or modify
// # it under the terms of the GNU Affero General Public License, version 3
// # (only), as published by the Free Software Foundation.
// #
// # This program is distributed in the hope that it will be useful,
// # but WITHOUT ANY WARRANTY; without even the implied warranty of
// # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// # GNU General Public License for more details.
// #
// # You should have received a copy of the GNU Affero General Public License
// # along with this program. If not, see <http://www.gnu.org/licenses/>.
// #
// # This program is dual-licensed. If you wish to learn more about the
// # AppEnlight Enterprise Edition, including its added features, Support
// # services, and proprietary license terms, please see
// # https://rhodecode.com/licenses/
angular.module('appenlight.components.channelstream', [])
.component('channelstream', {
controller: ChannelstreamController,
bindings: {
config: '='
}
});
channelstream: add state holder
r65 ChannelstreamController.$inject = ['$rootScope', 'stateHolder', 'userSelfPropertyResource'];
channelstream: separate element and basic pubsub
r64
channelstream: add state holder
r65 function ChannelstreamController($rootScope, stateHolder, userSelfPropertyResource){
if (stateHolder.AeUser.id === null){
return
}
channelstream: separate element and basic pubsub
r64 userSelfPropertyResource.get({key: 'websocket'}, function (data) {
stateHolder.websocket = new ReconnectingWebSocket(this.config.ws_url + '/ws?conn_id=' + data.conn_id);
stateHolder.websocket.onopen = function (event) {
console.log('open');
};
stateHolder.websocket.onmessage = function (event) {
var data = JSON.parse(event.data);
channelstream: utilize $rootScope
r69 $rootScope.$apply(function (scope) {
channelstream: use $scope.$apply
r67 _.each(data, function (message) {
console.log('channelstream-message', message);
if(typeof message.message.topic !== 'undefined'){
angular: start transitioning to component approach
r71 $rootScope.$emit(
channelstream: use $scope.$apply
r67 'channelstream-message.'+message.message.topic, message);
}
else{
angular: start transitioning to component approach
r71 $rootScope.$emit('channelstream-message', message);
channelstream: use $scope.$apply
r67 }
});
channelstream: separate element and basic pubsub
r64 });
};
stateHolder.websocket.onclose = function (event) {
console.log('closed');
};
stateHolder.websocket.onerror = function (event) {
console.log('error');
};
channelstream: bind this to proper context
r66 }.bind(this));
channelstream: separate element and basic pubsub
r64 }