feat(*): interact with HintCtrl

test-unit-sauce
Carlo s A. Guillen 10 years ago
parent e81023bac7
commit fe231271b7

@ -10,65 +10,73 @@ angular.module('ngHintUI')
// connect to background page // connect to background page
var port = chrome.extension.connect(); var port = chrome.extension.connect();
port.onMessage.addListener(function(msg) { port.onMessage.addListener(function(msg) {
$scope.$apply(function () { $scope.messageData = $scope.messageData || {};
$scope.messageData.Directives['Error-Messages'].push(msg + ' ' + Math.random()); var result = msg.split('##'); //[modName, message, messageType]
}); if(!$scope.messageData[result[0]]) {
$scope.messageData[result[0]] = {
'Error Messages': [],
'Warning Messages': [],
'Suggestion Messages': []
};
}
$scope.messageData[result[0]][result[2]].push(result[1]);
updateAll();
}); });
port.onDisconnect.addListener(function (a) { port.onDisconnect.addListener(function (a) {
console.log(a); console.log(a);
}); });
$scope.messageData = { // $scope.messageData = {
'Modules': { // 'Modules': {
'Error-Messages': ['qwer$scope is a message', 'So issdfs $scope', 'Dont forget asdfsbout me too'], // 'Error-Messages': ['qwer$scope is a message', 'So issdfs $scope', 'Dont forget asdfsbout me too'],
'Warning-Messages': ['$scope is sdfa message', 'So iqws $scope', 'Dontasdf forget about me too'], // 'Warning-Messages': ['$scope is sdfa message', 'So iqws $scope', 'Dontasdf forget about me too'],
'Suggestion-Messages': ['$scope meerqessage', 'So is thsdgsis', 'Dont foasdfrget asdfabout me too'], // 'Suggestion-Messages': ['$scope meerqessage', 'So is thsdgsis', 'Dont foasdfrget asdfabout me too'],
}, // },
'Directives': { // 'Directives': {
'Error-Messages': ['rty$scope is asdfnot message', 'So ishggh $scope, not', 'Dont forgedfh abohkhut me too, jk'], // 'Error-Messages': ['rty$scope is asdfnot message', 'So ishggh $scope, not', 'Dont forgedfh abohkhut me too, jk'],
'Warning-Messages': ['$scope not mqweressage', 'So is $scope, not', 'Dont forget abfghfout me too, jk'], // 'Warning-Messages': ['$scope not mqweressage', 'So is $scope, not', 'Dont forget abfghfout me too, jk'],
'Suggestion-Messages': ['$scope is not masdessage', 'So is thiddfss, not', 'Dont forget abohmgut me too, jk'], // 'Suggestion-Messages': ['$scope is not masdessage', 'So is thiddfss, not', 'Dont forget abohmgut me too, jk'],
}, // },
}; // };
$scope.labels = ['All-Messages', 'Error-Messages', 'Warning-Messages', 'Suggestion-Messages']; $scope.labels = ['All Messages', 'Error Messages', 'Warning Messages', 'Suggestion Messages'];
(function(self){ function updateAll(){
var all = { var all = {
'All-Messages': [], 'All Messages': [],
'Error-Messages': [], 'Error Messages': [],
'Warning-Messages': [], 'Warning Messages': [],
'Suggestion-Messages': [] 'Suggestion Messages': []
}; };
for(var id in self.messageData) { for(var id in $scope.messageData) {
self.messageData[id]['All-Messages'] = []; $scope.messageData[id]['All Messages'] = [];
for(var type in self.messageData[id]) { for(var type in $scope.messageData[id]) {
self.messageData[id][type].forEach(function(message) { $scope.messageData[id][type].forEach(function(message) {
if(type !== 'All-Messages'){ if(type !== 'All Messages'){
all['All-Messages'].push({message: message, type: type, module: id}); all['All Messages'].push({message: message, type: type, module: id});
all[type].push(message); all[type].push(message);
self.messageData[id]['All-Messages'].push({message: message, type: type}); $scope.messageData[id]['All Messages'].push({message: message, type: type});
} }
}); });
} }
} }
self.messageData['All'] = all; $scope.messageData['All'] = all;
})($scope); setTimeout(function() {
$scope.$apply();
$scope.dashesToSpace = function(str) { console.log("called")
return str.replace(/-/g,' '); }, 3000);
} }
$scope.setModule = function(module) { $scope.setModule = function(module) {
$scope.module = module; $scope.module = module;
} }
$scope.setType = function(type) { $scope.setType = function(type) {
$scope.isEmpty = ''; $scope.isEmpty = '';
if($scope.messageData[$scope.module][type].length === 0) { if($scope.messageData && $scope.messageData[$scope.module][type].length === 0) {
$scope.isEmpty = 'There are no messages in this category.'; $scope.isEmpty = 'There are no messages in this category.';
} }
$scope.type = type; $scope.type = type;
} }
$scope.setModule('Directives'); $scope.setModule('Directives');
$scope.setType('All-Messages'); $scope.setType('All Messages');
}]); }]);

@ -423,8 +423,8 @@ var eventProxyElement = document.getElementById('__ngDebugElement');
var customEvent = document.createEvent('Event'); var customEvent = document.createEvent('Event');
customEvent.initEvent('myCustomEvent', true, true); customEvent.initEvent('myCustomEvent', true, true);
angular.hint.onMessage = function (data) { angular.hint.onMessage = function (moduleName, message, messageType) {
eventProxyElement.innerText = data; eventProxyElement.innerText = moduleName+'##'+message+'##'+messageType;
eventProxyElement.dispatchEvent(customEvent); eventProxyElement.dispatchEvent(customEvent);
}; };
@ -2345,7 +2345,7 @@ function logMessage(moduleName, message, severity) {
queuedMessages[moduleName][messageType].push(message); queuedMessages[moduleName][messageType].push(message);
} }
module.exports.onMessage(message); module.exports.onMessage(moduleName, message, messageType);
} }
/** /**

@ -27,7 +27,7 @@
<ul class="nav nav-pills nav-stacked"> <ul class="nav nav-pills nav-stacked">
<li ng-class="{active: type === label}" ng-repeat="label in labels" ng-click="setType(label)"> <li ng-class="{active: type === label}" ng-repeat="label in labels" ng-click="setType(label)">
<a class="offsetTab"> <a class="offsetTab">
{{dashesToSpace(label)}} {{label}}
</a> </a>
</li> </li>
</ul> </ul>
@ -54,7 +54,7 @@
<td>{{$index+1}}</td> <td>{{$index+1}}</td>
<td ng-show="module === 'All' && type === 'All-Messages'">Hint {{message.module}}</td> <td ng-show="module === 'All' && type === 'All-Messages'">Hint {{message.module}}</td>
<td>{{message.message || message}}</td> <td>{{message.message || message}}</td>
<td ng-show="type === 'All-Messages'">{{message.type.substring(0,message.type.indexOf('-'))}}</td> <td ng-show="type === 'All-Messages'">{{message.type.substring(message.type.indexOf(' '))}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

@ -6,7 +6,7 @@ var eventProxyElement = document.getElementById('__ngDebugElement');
var customEvent = document.createEvent('Event'); var customEvent = document.createEvent('Event');
customEvent.initEvent('myCustomEvent', true, true); customEvent.initEvent('myCustomEvent', true, true);
angular.hint.onMessage = function (data) { angular.hint.onMessage = function (moduleName, message, messageType) {
eventProxyElement.innerText = data; eventProxyElement.innerText = moduleName+'##'+message+'##'+messageType;
eventProxyElement.dispatchEvent(customEvent); eventProxyElement.dispatchEvent(customEvent);
}; };