Merge branch 'master' of https://github.com/naver/pinpoint into google-httpclient

This commit is contained in:
Jaehong Kim
2015-08-31 16:59:14 +09:00
37 changed files with 454 additions and 458 deletions
@@ -67,7 +67,7 @@ public class ClassFileTransformerDispatcher implements ClassFileTransformer, Dyn
this.agent = agent;
this.byteCodeInstrumentor = byteCodeInstrumentor;
this.dynamicTransformerRegistry = new DefaultClassFileRetransformer();
this.dynamicTransformerRegistry = new DefaultDynamicTransformerRegistry();
this.profilerConfig = agent.getProfilerConfig();
this.modifierRegistry = createModifierRegistry(pluginContexts);
this.skipFilter = new DefaultClassFileFilter(agentClassLoader);
@@ -17,36 +17,34 @@
package com.navercorp.pinpoint.profiler;
import java.lang.instrument.ClassFileTransformer;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.navercorp.pinpoint.profiler.util.Maps;
public class DefaultClassFileRetransformer implements DynamicTrnasformerRegistry {
public class DefaultDynamicTransformerRegistry implements DynamicTrnasformerRegistry {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final ConcurrentMap<TransformerKey, ClassFileTransformer> transformerMap = Maps.newWeakConcurrentMap();
private final ConcurrentMap<TransformerKey, ClassFileTransformer> transformerMap = new ConcurrentHashMap<TransformerKey, ClassFileTransformer>();
@Override
public void onRetransformRequest(Class<?> target, final ClassFileTransformer transformer) {
if (logger.isInfoEnabled()) {
logger.info("addRetransformEvent class:{}", target.getName());
}
add(target.getClassLoader(), target.getName(), transformer);
if (logger.isInfoEnabled()) {
logger.info("added retransformer classLoader: {}, class: {}, registry size: {}", target.getClassLoader(), target.getName(), transformerMap.size());
}
}
@Override
public void onTransformRequest(ClassLoader classLoader, String targetClassName, ClassFileTransformer transformer) {
if (logger.isInfoEnabled()) {
logger.info("addDynamicTransformer classLoader:{] className:{}", classLoader, targetClassName);
}
add(classLoader, targetClassName, transformer);
if (logger.isInfoEnabled()) {
logger.info("added dynamic transformer classLoader: {}, className: {}, registry size: {}", classLoader, targetClassName, transformerMap.size());
}
}
private void add(ClassLoader classLoader, String targetClassName, ClassFileTransformer transformer) {
@@ -63,7 +61,13 @@ public class DefaultClassFileRetransformer implements DynamicTrnasformerRegistry
return null;
}
return transformerMap.remove(new TransformerKey(classLoader, targetClassName));
ClassFileTransformer transformer = transformerMap.remove(new TransformerKey(classLoader, targetClassName));
if (logger.isDebugEnabled()) {
logger.info("removed dynamic transformer classLoader: {}, className: {}, registry size: {}", classLoader, targetClassName, transformerMap.size());
}
return transformer;
}
private static final class TransformerKey {
@@ -13,7 +13,7 @@
var self = this;
// from userGroup
this.sendInit = function( userGroupID ) {
$rootScope.$broadcast( "alarmPinpointUser.configuration.load" );
//$rootScope.$broadcast( "alarmPinpointUser.configuration.load" );
self.sendReloadWithUserGroupID( userGroupID );
};
// from userGroup
@@ -34,8 +34,8 @@
};
this.sendCRUD = function( funcName, data, successCallback, failCallback, $elAlert ) {
$ajaxService[funcName]( data, function( resultData ) {
if ( resultData.errorCode ) {
self.showAlert( $elAlert, resultData.errorMessage );
if ( resultData.errorCode || resultData.status ) {
self.showAlert( $elAlert, resultData.errorMessage || resultData.statusText );
failCallback( resultData );
} else {
successCallback( resultData );
@@ -0,0 +1,112 @@
(function($) {
'use strict';
/**
* (en) AnalyticsService
* @ko AnalyticsService
* @group Service
* @name AnalyticsService
* @class
*/
pinpointApp.service('AnalyticsService', [ '$rootScope', 'globalConfig', function ($rootScope, globalConfig) {
if ( typeof ga !== "undefined" ) {
this.send = function( category, name, label, count, options ) {
if ( globalConfig.sendAllowed == false ) return;
if ( arguments.length == 1 ) {
ga( 'send', 'pageview', arguments[0] );
} else {
ga( 'send', 'event', category, name, label, count, options );
}
};
} else if ( typeof wcs !== "undefined" ) {
this.send = function( category, name, label ) {
if ( globalConfig.sendAllowed == false ) return;
if ( arguments.length == 1 ) return;
if ( typeof label !== "undefined" || typeof label !== "null" ) {
name = name + "_" + label;
}
wcs.event( category, name );
};
}
this.CONST = {};
this.CONST.MAIN = "Main";
this.CONST.CONTEXT = "Context";
this.CONST.CALLSTACK = "CallStack";
this.CONST.MIXEDVIEW = "MixedView";
this.CONST.CLK_APPLICATION = "ClickApplication";
this.CONST.CLK_TIME = "ClickTime";
this.CONST.CLK_SEARCH_NODE = "ClickSearchNode";
this.CONST.CLK_CLEAR_SEARCH = "ClickClearSearch";
this.CONST.CLK_NODE = "ClickNode";
this.CONST.CLK_LINK = "ClickLink";
this.CONST.CLK_UPDATE_TIME = "ClickUpdateTime";
this.CONST.CLK_HELP = "ClickHelp";
this.CONST.CLK_SCATTER_SETTING = "ClickScatterSetting";
this.CONST.CLK_DOWNLOAD_SCATTER = "ClickDownloadScatter";
this.CONST.CLK_RESPONSE_GRAPH = "ClickResponseGraph";
this.CONST.CLK_LOAD_GRAPH = "ClickLoadGraph";
this.CONST.CLK_SHOW_GRAPH = "ClickShowGraph";
this.CONST.CLK_FILTER_TRANSACTION = "ClickFilterTransaction";
this.CONST.CLK_FILTER_TRANSACTION_WIZARD = "ClickFilterTransactionWizard";
this.CONST.CLK_MORE = "ClickMore";
this.CONST.CLK_DISTRIBUTED_CALL_FLOW = "ClickDistributedCallFlow";
this.CONST.CLK_SERVER_MAP = "ClickServerMap";
this.CONST.CLK_RPC_TIMELINE = "ClickRPCTimeline";
this.CONST.CLK_CALL = "ClickCall";
this.CONST.CLK_TRANSACTION = "ClickTransaction";
this.CONST.CLK_HEAP = "ClickHeap";
this.CONST.CLK_PERM_GEN = "ClickPermGen";
this.CONST.CLK_CPU_LOAD = "ClickCpuLoad";
this.CONST.CLK_REFRESH = "ClickRefresh";
this.CONST.CLK_CALLEE_RANGE = "ClickCalleeRange";
this.CONST.CLK_CALLER_RANGE = "ClickCallerRange";
this.CONST.CLK_CONFIGURATION = "ClickConfiguration";
this.CONST.CLK_GENERAL = "ClickConfigurationGeneral";
this.CONST.CLK_ALARM = "ClickConfigurationAlarm";
this.CONST.CLK_HELP = "ClickConfigurationHelp";
this.CONST.CLK_ALARM_CREATE_USER_GROUP = "ClickAlarmCreateUserGroup";
this.CONST.CLK_ALARM_REFRESH_USER_GROUP = "ClickAlarmRefreshUserGroup";
this.CONST.CLK_ALARM_FILTER_USER_GROUP = "ClickAlarmFilterUserGroup";
this.CONST.CLK_ALARM_ADD_USER = "ClickAlarmAddUser";
this.CONST.CLK_ALARM_REFRESH_USER = "ClickAlarmRefreshUser";
this.CONST.CLK_ALARM_FILTER_USER = "ClickAlarmFilterUser";
this.CONST.CLK_ALARM_CREATE_PINPOINT_USER = "ClickAlarmCreatePinpointUser";
this.CONST.CLK_ALARM_REFRESH_PINPOINT_USER = "ClickAlarmRefreshPinpointUser";
this.CONST.CLK_ALARM_FILTER_PINPOINT_USER = "ClickAlarmFilterPinpointUser";
this.CONST.CLK_ALARM_CREATE_RULE = "ClickAlarmCreateUserGroup";
this.CONST.CLK_ALARM_REFRESH_RULE = "ClickAlarmRefreshUserGroup";
this.CONST.CLK_ALARM_FILTER_RULE = "ClickAlarmFilterUserGroup";
this.CONST.TG_DATE = "ToggleDate";
this.CONST.TG_UPDATE_ON = "ToggleUpdateOn";
this.CONST.TG_NODE_VIEW = "ToggleNodeView";
this.CONST.TG_SCATTER_SUCCESS = "ToggleScatterSuccess";
this.CONST.TG_SCATTER_FAILED = "ToggleScatterFailed";
this.CONST.TG_MERGE_TYPE = "ToggleMergeType";
this.CONST.TG_CALL_COUNT = "ToggleCallCount";
this.CONST.TG_TPS = "ToggleTPS";
this.CONST.TG_ROUTING = "ToggleRouting";
this.CONST.TG_CURVE = "ToggleCurve";
this.CONST.ST_ = "Sort";
this.CONST.ASCENDING = "ascending";
this.CONST.DESCENDING = "descending";
this.CONST.ON = "on";
this.CONST.OFF = "off";
this.CONST.MAIN_PAGE = "/main.page";
this.CONST.FILTEREDMAP_PAGE = "/filteredMap.page";
this.CONST.INSPECTOR_PAGE = "/inspector.page";
this.CONST.SCATTER_FULL_SCREEN_PAGE = "/scatterFullScreen.page";
this.CONST.TRANSACTION_DETAIL_PAGE = "/transactionDetail.page";
this.CONST.TRANSACTION_LIST_PAGE = "/transactionList.page";
this.CONST.TRANSACTION_VIEW_PAGE = "/transactionView.page";
}]);
})(jQuery);
@@ -14,7 +14,8 @@
POINTS_AVG: 3
});
pinpointApp.directive('agentChartGroupDirective', [ 'agentChartGroupConfig', '$timeout', 'AgentDaoService', function (cfg, $timeout, AgentDaoService) {
pinpointApp.directive('agentChartGroupDirective', [ 'agentChartGroupConfig', '$timeout', 'AgentDaoService', 'AnalyticsService',
function (cfg, $timeout, AgentDaoService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -62,7 +63,7 @@
activate: function (event, ui) {
var activatedTabText = ui.newTab.text();
if (activatedTabText == 'Heap') {
$at($at.MIXEDVIEW, $at.CLK_HEAP);
analyticsService.send(analyticsService.CONST.MIXEDVIEW, analyticsService.CONST.CLK_HEAP);
if (htChartCache.Heap === false) {
showHeapChart(htLastAgentStat);
} else {
@@ -70,7 +71,7 @@
}
return;
} else if (activatedTabText == 'PermGen') {
$at($at.MIXEDVIEW, $at.CLK_PERM_GEN);
analyticsService.send(analyticsService.CONST.MIXEDVIEW, analyticsService.CONST.CLK_PERM_GEN);
if (htChartCache.PermGen === false) {
showPermGenChart(htLastAgentStat);
} else {
@@ -78,7 +79,7 @@
}
return;
} else if (activatedTabText == 'CpuLoad') {
$at($at.MIXEDVIEW, $at.CLK_CPU_LOAD);
analyticsService.send(analyticsService.CONST.MIXEDVIEW, analyticsService.CONST.CLK_CPU_LOAD);
if (htChartCache.CpuLoad === false) {
showCpuLoadChart(htLastAgentStat);
} else {
@@ -180,7 +180,21 @@
scope.$broadcast('cpuLoadChartDirective.showCursorAt.forCpuLoad', event.index);
}
}
scope.openDetail = function() {
$('#serverMetaDataDiv').modal({});
};
scope.hasDuplicate = function( libName, index ) {
var len = scope.currentServiceInfo.serviceLibs.length;
var bHas = false;
for( var i = 0 ; i < len ; i++ ) {
if ( scope.currentServiceInfo.serviceLibs[i] == libName && i != index ) {
bHas = true;
break;
}
}
return bHas ? "color:red" : "";
};
/**
* scope event on jvmMemoryChartDirective.cursorChanged.forHeap
*/
@@ -43,9 +43,7 @@
{{info.serviceType}}
<span ng-show="info.serverMetaData">
<span ng-show="info.serverMetaData.serverInfo.length">&nbsp;({{info.serverMetaData.serverInfo}})&nbsp;</span>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#serverMetaDataDiv" ng-show="info.serverMetaData.vmArgs.length || info.serverMetaData.serviceInfos.length">
Details
</button>
<button type="button" class="btn btn-default btn-xs" ng-click="openDetail()" ng-show="info.serverMetaData.vmArgs.length || info.serverMetaData.serviceInfos.length">Details</button>
</span>
</td>
<td class="text-right"><strong>End Status</strong></td>
@@ -124,7 +122,7 @@
</div>
<div class="col-md-8 service-libs">
<ul class="list-unstyled">
<li ng-repeat="serviceLib in currentServiceInfo.serviceLibs">{{serviceLib}}</li>
<li ng-repeat="serviceLib in currentServiceInfo.serviceLibs" style="{{hasDuplicate(serviceLib, $index)}}">{{serviceLib}}</li>
</ul>
</div>
</div>
@@ -7,17 +7,14 @@
* @name alarmGroupMemberDirective
* @class
*/
pinpointApp.directive('alarmGroupMemberDirective', [ '$rootScope', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AlarmBroadcastService',
function ($rootScope, $timeout, helpContentTemplate, helpContentService, $alarmUtilService, $alarmBroadcastService) {
pinpointApp.directive('alarmGroupMemberDirective', [ '$rootScope', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AlarmBroadcastService', 'AnalyticsService',
function ($rootScope, $timeout, helpContentTemplate, helpContentService, alarmUtilService, alarmBroadcastService, analyticsService) {
return {
restrict: 'EA',
replace: true,
templateUrl: 'features/configuration/alarm/alarmGroupMember.html',
scope: true,
link: function (scope, element) {
//@TODO
//통계 추가할 것.
//$at($at.FILTEREDMAP_PAGE);
var $element = $(element);
var $elWrapper = $element.find(".wrapper");
@@ -40,8 +37,8 @@
var $elUL = $element.find(".some-list-content ul");
$elUL.on("click", function($event) {
var tagName = $event.toElement.tagName.toLowerCase();
var $target = $($event.toElement);
var $target = $( $event.toElement || $event.target );
var tagName = $target.get(0).tagName.toLowerCase();
var $li = $target.parents("li");
if ( tagName == "button" ) {
@@ -62,8 +59,8 @@
}
});
function removeConfirm( $el ) {
$alarmUtilService.showLoading( $elLoading, false );
removeMember( $alarmUtilService.extractID( $el ) );
alarmUtilService.showLoading( $elLoading, false );
removeMember( alarmUtilService.extractID( $el ) );
}
function removeCancel( $el ) {
$el.find("span.right").remove().end().find("span.remove").show().end().removeClass("remove");
@@ -109,12 +106,12 @@
removeCancel( $(this) );
});
}
$alarmUtilService.unsetFilterBackground( $elWrapper );
alarmUtilService.unsetFilterBackground( $elWrapper );
$elFilterInput.val("");
}
function addMember( oUser ) {
$alarmUtilService.sendCRUD( "addMemberInGroup", { "userGroupId": currentUserGroupID, "memberId": oUser.userId }, function( resultData ) {
alarmUtilService.sendCRUD( "addMemberInGroup", { "userGroupId": currentUserGroupID, "memberId": oUser.userId }, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
scope.groupMemberList.push({
@@ -123,31 +120,31 @@
"name": oUser.name,
"department": oUser.department
});
$alarmUtilService.setTotal( $elTotal, groupMemberList.length );
$alarmUtilService.hide( $elLoading );
$alarmBroadcastService.sendCallbackAddedUser( true );
alarmUtilService.setTotal( $elTotal, groupMemberList.length );
alarmUtilService.hide( $elLoading );
alarmBroadcastService.sendCallbackAddedUser( true );
}, function( errorData ) {}, $elAlert );
}
function removeMember( memberID ) {
$alarmUtilService.sendCRUD( "removeMemberInGroup", { "userGroupId": currentUserGroupID, "memberId": memberID }, function( resultData ) {
alarmUtilService.sendCRUD( "removeMemberInGroup", { "userGroupId": currentUserGroupID, "memberId": memberID }, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
scope.$apply(function() {
removeFromList( memberID );
});
$alarmUtilService.setTotal( $elTotal, groupMemberList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, groupMemberList.length );
alarmUtilService.hide( $elLoading );
isRemoving = false;
}, function( errorData ) {}, $elAlert );
}
function loadList() {
$alarmUtilService.sendCRUD( "getGroupMemberListInGroup", { "userGroupId": currentUserGroupID }, function( resultData ) {
alarmUtilService.sendCRUD( "getGroupMemberListInGroup", { "userGroupId": currentUserGroupID }, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
isLoadedGroupMemberList = true;
groupMemberList = scope.groupMemberList = resultData;
$alarmUtilService.setTotal( $elTotal, groupMemberList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, groupMemberList.length );
alarmUtilService.hide( $elLoading );
}, function( errorData ) {}, $elAlert );
};
function hasUser( userID ) {
@@ -157,9 +154,9 @@
scope.prefix = "alarmGroupMember_";
scope.onRefresh = function() {
if ( isRemoving == true ) return;
$at( $at.MAIN, $at.CLK_ALARM_REFRESH_USER );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_REFRESH_USER );
$elFilterInput.val("");
$alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showLoading( $elLoading, false );
loadList();
};
scope.onInputFilter = function($event) {
@@ -179,15 +176,15 @@
if ( isRemoving == true ) return;
var query = $.trim( $elFilterInput.val() );
if ( query.length != 0 && query.length < 3 ) {
$alarmUtilService.showLoading( $elLoading, false );
$alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
return;
}
$at( $at.MAIN, $at.CLK_ALARM_FILTER_USER );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_FILTER_USER );
if ( query == "" ) {
if ( scope.groupMemberList.length != groupMemberList.length ) {
scope.groupMemberList = groupMemberList;
$alarmUtilService.unsetFilterBackground( $elWrapper );
alarmUtilService.unsetFilterBackground( $elWrapper );
}
$elFilterEmpty.addClass("disabled");
} else {
@@ -199,7 +196,7 @@
}
}
scope.groupMemberList = newFilterGroupMember;
$alarmUtilService.setFilterBackground( $elWrapper );
alarmUtilService.setFilterBackground( $elWrapper );
}
};
scope.onFilterEmpty = function() {
@@ -209,7 +206,7 @@
scope.onFilterGroup();
};
scope.onCloseAlert = function() {
$alarmUtilService.closeAlert( $elAlert, $elLoading );
alarmUtilService.closeAlert( $elAlert, $elLoading );
};
scope.$on("alarmGroupMember.configuration.load", function( event, userGroupID ) {
currentUserGroupID = userGroupID;
@@ -221,14 +218,14 @@
groupMemberList = scope.groupMemberList = [];
});
scope.$on("alarmGroupMember.configuration.addUser", function( event, oUser ) {
$alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showLoading( $elLoading, false );
if ( hasUser( oUser.userId ) == false ) {
$at( $at.MAIN, $at.CLK_ALARM_ADD_USER );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_ADD_USER );
reset();
addMember( oUser );
} else {
$alarmUtilService.showAlert( $elAlert, "Exist a same user in the lists.", true );
$alarmBroadcastService.sendCallbackAddedUser( true );
alarmUtilService.showAlert( $elAlert, "Exist a same user in the lists.", true );
alarmBroadcastService.sendCallbackAddedUser( true );
}
});
scope.$on("alarmGroupMember.configuration.updateUser", function( event, oUser ) {
@@ -8,22 +8,23 @@
* @class
*/
pinpointApp.directive('alarmPinpointUserDirective', [ '$rootScope', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AlarmBroadcastService',
function ($rootScope, helpContentTemplate, $timeout, helpContentService, $alarmUtilService, $alarmBroadcastService) {
pinpointApp.directive('alarmPinpointUserDirective', [ '$rootScope', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AlarmBroadcastService', 'AnalyticsService', 'globalConfig',
function ($rootScope, helpContentTemplate, $timeout, helpContentService, alarmUtilService, alarmBroadcastService, analyticsService, globalConfig) {
return {
restrict: 'EA',
replace: true,
templateUrl: 'features/configuration/alarm/alarmPinpointUser.html',
scope: true,
link: function (scope, element) {
var $element = $(element);
var $elCreatBtn = $element.find(".some-list-header button");
var $elWrapper = $element.find(".wrapper");
var $elEmpty = $element.find(".empty-list");
var $elTotal = $element.find(".total");
var $elLoading = $element.find(".some-loading");
var $elAlert = $element.find(".some-alert");
var $elFilterInput = $element.find("div.filter-input input");
var $elFilterEmpty = $element.find("div.filter-input button.trash");
var $elSearchType = $element.find("select");
var $elSearchInput = $element.find("div.filter-input input");
var $elEdit = $element.find(".some-edit-content");
var $elEditInputUserID = $elEdit.find("input[name=userID]");
var $elEditInputName = $elEdit.find("input[name=name]");
@@ -45,8 +46,8 @@
var $elUL = $element.find(".some-list-content ul");
$elUL.on("click", function( $event ) {
var tagName = $event.toElement.tagName.toLowerCase();
var $target = $($event.toElement);
var $target = $( $event.toElement || $event.target );
var tagName = $target.get(0).tagName.toLowerCase();
var $li = $target.parents("li");
if ( tagName == "button" ) {
@@ -78,16 +79,16 @@
function reset() {
scope.onCancelEdit();
$alarmUtilService.unsetFilterBackground( $elWrapper );
$elFilterInput.val("");
alarmUtilService.unsetFilterBackground( $elWrapper );
$elSearchInput.val("");
}
function moveUser( $el ) {
$alarmUtilService.showLoading( $elLoading, false );
$alarmBroadcastService.sendUserAdd( searchUser( $alarmUtilService.extractID( $el ) ) );
alarmUtilService.showLoading( $elLoading, false );
alarmBroadcastService.sendUserAdd( searchUser( alarmUtilService.extractID( $el ) ) );
}
function removeConfirm( $el ) {
$alarmUtilService.showLoading( $elLoading, false );
removeUser( $alarmUtilService.extractID( $el ) );
alarmUtilService.showLoading( $elLoading, false );
removeUser( alarmUtilService.extractID( $el ) );
}
function removeCancel( $el ) {
$el
@@ -117,12 +118,11 @@
"phoneNumber": userPhone,
"email": userEmail
};
$alarmUtilService.sendCRUD( "createPinpointUser", oNewUser, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
pinpointUserList.push(oNewUser);
$alarmUtilService.setTotal( $elTotal, pinpointUserList.length );
$alarmUtilService.hide( $elLoading, $elEdit );
alarmUtilService.sendCRUD( "createPinpointUser", oNewUser, function( resultData ) {
alarmUtilService.hide( $elLoading, $elEdit );
$elSearchType.val( "userName" );
$elSearchInput.val( userName );
scope.onSearch();
}, function(errorData) {}, $elAlert );
}
function updateUser( userID, userName, userDepartment, userPhone, userEmail ) {
@@ -133,7 +133,7 @@
"phoneNumber": userPhone,
"email": userEmail
};
$alarmUtilService.sendCRUD( "updatePinpointUser", oUpdateUser, function( resultData ) {
alarmUtilService.sendCRUD( "updatePinpointUser", oUpdateUser, function( resultData ) {
for( var i = 0 ; i < pinpointUserList.length ; i++ ) {
if ( pinpointUserList[i].userId == userID ) {
pinpointUserList[i].name = userName;
@@ -142,12 +142,12 @@
pinpointUserList[i].email = userEmail;
}
}
$alarmUtilService.hide( $elLoading, $elEdit );
$alarmBroadcastService.sendUserUpdated( oUpdateUser );
alarmUtilService.hide( $elLoading, $elEdit );
alarmBroadcastService.sendUserUpdated( oUpdateUser );
}, function( errorData ) {}, $elAlert );
}
function removeUser( userID ) {
$alarmUtilService.sendCRUD( "removePinpointUser", { "userId": userID }, function( resultData ) {
alarmUtilService.sendCRUD( "removePinpointUser", { "userId": userID }, function( resultData ) {
scope.$apply(function() {
for( var i = 0 ; i < pinpointUserList.length ; i++ ) {
if ( pinpointUserList[i].userId == userID ) {
@@ -156,20 +156,17 @@
}
}
});
$alarmUtilService.setTotal( $elTotal, pinpointUserList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, pinpointUserList.length );
alarmUtilService.hide( $elLoading );
isRemoving = false;
$alarmBroadcastService.sendUserRemoved( userID );
alarmBroadcastService.sendUserRemoved( userID );
}, function( errorData ) {}, $elAlert );
}
function loadList( isFirst ) {
$alarmUtilService.sendCRUD( "getPinpointUserList", {}, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
isLoadedPinpointUserList = true;
function loadList( oParam ) {
alarmUtilService.sendCRUD( "getPinpointUserList", oParam || {}, function( resultData ) {
pinpointUserList = scope.pinpointUserList = resultData;
$alarmUtilService.setTotal( $elTotal, pinpointUserList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, pinpointUserList.length );
alarmUtilService.hide( $elLoading );
}, function( errorData ) {}, $elAlert );
};
function validateEmail( email ) {
@@ -181,13 +178,7 @@
return reg.test(phone);
}
scope.onRefresh = function() {
if ( isRemoving == true ) return;
$at( $at.MAIN, $at.CLK_ALARM_REFRESH_PINPOINT_USER );
reset();
$alarmUtilService.showLoading( $elLoading, false );
loadList( false );
};
scope.isAllowedCreate = globalConfig.createUserAllowed;
scope.onCreate = function() {
if ( isRemoving == true ) return;
@@ -199,15 +190,15 @@
$elEditInputDepartment.val("");
$elEditInputPhone.val("");
$elEditInputEmail.val("");
$alarmUtilService.show( $elEdit );
alarmUtilService.show( $elEdit );
$elEditInputUserID.focus();
};
scope.onUpdate = function($event) {
if ( isRemoving == true ) return;
isCreate = false;
var $el = $( $event.toElement ).parents("li");
var oUser = searchUser( $alarmUtilService.extractID( $el ) );
var $el = $( $event.toElement || $event.target ).parents("li");
var oUser = searchUser( alarmUtilService.extractID( $el ) );
$elEditGuide.html( "Update pinpoint user data." );
$elEditInputUserID.prop("disabled", "disabled");
@@ -216,54 +207,31 @@
$elEditInputDepartment.val( oUser.department );
$elEditInputPhone.val( oUser.phoneNumber );
$elEditInputEmail.val( oUser.email );
$alarmUtilService.show( $elEdit );
alarmUtilService.show( $elEdit );
$elEditInputName.focus().select();
};
scope.onInputFilter = function($event) {
scope.onInputSearch = function($event) {
if ( isRemoving == true ) return;
if ( $event.keyCode == 13 ) { // Enter
scope.onFilterGroup();
scope.onSearch();
return;
}
if ($.trim( $elFilterInput.val() ).length >= 3 ) {
$elFilterEmpty.removeClass("disabled");
} else {
$elFilterEmpty.addClass("disabled");
}
};
scope.onFilterGroup = function() {
scope.onSearch = function() {
if ( isRemoving == true ) return;
var query = $.trim( $elFilterInput.val() );
var searchType = $elSearchType.val();
var query = $.trim( $elSearchInput.val() );
if ( query.length != 0 && query.length < 3 ) {
$alarmUtilService.showLoading( $elLoading, false );
$alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
return;
}
$at( $at.MAIN, $at.CLK_ALARM_FILTER_PINPOINT_USER );
if ( query == "" ) {
if ( scope.pinpointUserList.length != pinpointUserList.length ) {
scope.pinpointUserList = pinpointUserList;
$alarmUtilService.unsetFilterBackground( $elWrapper );
}
$elFilterEmpty.addClass("disabled");
} else {
var newFilterUserGroup = [];
var length = pinpointUserList.length;
for( var i = 0 ; i < pinpointUserList.length ; i++ ) {
if ( pinpointUserList[i].name.indexOf( query ) != -1 || pinpointUserList[i].department.indexOf( query ) != -1 ) {
newFilterUserGroup.push( pinpointUserList[i] );
}
}
scope.pinpointUserList = newFilterUserGroup;
$alarmUtilService.setFilterBackground( $elWrapper );
}
};
scope.onFilterEmpty = function() {
if ( isRemoving == true ) return;
if ( $.trim( $elFilterInput.val() ) == "" ) return;
$elFilterInput.val("");
scope.onFilterGroup();
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_FILTER_PINPOINT_USER );
alarmUtilService.showLoading( $elLoading, false );
var oParam = {};
oParam[searchType] = query;
loadList( oParam );
};
scope.onInputEdit = function($event) {
if ( $event.keyCode == 13 ) { // Enter
@@ -274,7 +242,7 @@
}
};
scope.onCancelEdit = function() {
$alarmUtilService.hide( $elEdit );
alarmUtilService.hide( $elEdit );
};
scope.onApplyEdit = function() {
var userID = $.trim( $elEditInputUserID.val() );
@@ -284,45 +252,42 @@
var userEmail = $.trim( $elEditInputEmail.val() );
if ( userID == "" || userName == "" ) {
$alarmUtilService.showLoading( $elLoading, true );
$alarmUtilService.showAlert( $elAlert, "You must input user id and user name.");
alarmUtilService.showLoading( $elLoading, true );
alarmUtilService.showAlert( $elAlert, "You must input user id and user name.");
return;
}
// TODO phone - 체크
// TODO email 포맷 체크
$alarmUtilService.showLoading( $elLoading, true );
if ( $alarmUtilService.hasDuplicateItem( pinpointUserList, function( pinpointUser ) {
alarmUtilService.showLoading( $elLoading, true );
if ( alarmUtilService.hasDuplicateItem( pinpointUserList, function( pinpointUser ) {
return pinpointUser.userId == userID;
}) && isCreate == true) {
$alarmUtilService.showAlert( $elAlert, "Exist a same user id in the lists." );
alarmUtilService.showAlert( $elAlert, "Exist a same user id in the lists." );
return;
}
if ( validatePhone( userPhone ) == false ) {
$alarmUtilService.showAlert( $elAlert, "You can only input numbers." );
alarmUtilService.showAlert( $elAlert, "You can only input numbers." );
return;
}
if ( validateEmail( userEmail ) == false ) {
$alarmUtilService.showAlert( $elAlert, "Invalid email format." );
alarmUtilService.showAlert( $elAlert, "Invalid email format." );
return;
}
if ( isCreate ) {
$at( $at.MAIN, $at.CLK_ALARM_CREATE_PINPOINT_USER );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_CREATE_PINPOINT_USER );
createUser( userID, userName, userDepartment, userPhone, userEmail );
} else {
updateUser( userID, userName, userDepartment, userPhone, userEmail );
}
};
scope.onCloseAlert = function() {
$alarmUtilService.closeAlert( $elAlert, $elLoading );
alarmUtilService.closeAlert( $elAlert, $elLoading );
};
scope.$on("alarmPinpointUser.configuration.load", function() {
if ( isLoadedPinpointUserList === false ) {
loadList( true );
}
});
// scope.$on("alarmPinpointUser.configuration.load", function() {
// if ( isLoadedPinpointUserList === false ) {
// loadList( true );
// }
// });
scope.$on("alarmPinpointUser.configuration.addUserCallback", function( event ) {
$alarmUtilService.hide( $elLoading );
alarmUtilService.hide( $elLoading );
});
}
};
@@ -8,8 +8,8 @@
* @class
*/
pinpointApp.directive('alarmRuleDirective', [ '$rootScope', '$document', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService',
function ($rootScope, $document, $timeout, helpContentTemplate, helpContentService, $alarmUtilService) {
pinpointApp.directive('alarmRuleDirective', [ '$rootScope', '$document', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AnalyticsService',
function ($rootScope, $document, $timeout, helpContentTemplate, helpContentService, alarmUtilService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -48,8 +48,8 @@
var $elTbody = $element.find(".some-list-content .wrapper tbody");
$elTbody.on("click", function($event) {
var tagName = $event.toElement.tagName.toLowerCase();
var $target = $($event.toElement);
var $target = $( $event.toElement || $event.target );
var tagName = $target.get(0).tagName.toLowerCase();
var $tr = $target.parents("tr");
if ( tagName == "button" ) {
@@ -89,13 +89,13 @@
});
}
scope.onCancelEdit();
$alarmUtilService.unsetFilterBackground( $elWrapper );
alarmUtilService.unsetFilterBackground( $elWrapper );
$elFilterInputApplication.val("");
$elFilterInputRule.val("");
}
function removeConfirm( $el ) {
$alarmUtilService.showLoading( $elLoading, false );
removeUser( $alarmUtilService.extractID( $el ) );
alarmUtilService.showLoading( $elLoading, false );
removeUser( alarmUtilService.extractID( $el ) );
}
function removeCancel( $el ) {
$el.removeClass("remove")
@@ -133,7 +133,6 @@
return m;
}
}).on("change", function (e) {
$at( $at.MAIN, $at.CLK_APPLICATION );
});
$elEditSelectRules.select2({
searchInputPlaceholder: "Input your rule name.",
@@ -145,7 +144,6 @@
return m;
}
}).on("change", function (e) {
$at( $at.MAIN, $at.CLK_APPLICATION );
});
}
function searchRule( ruleID ) {
@@ -170,16 +168,16 @@
"emailSend": email,
"notes": notes
};
$alarmUtilService.sendCRUD( "createRule", oNewRule, function( resultData ) {
alarmUtilService.sendCRUD( "createRule", oNewRule, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
oNewRule.ruleId = resultData.ruleId;
ruleList.push(oNewRule);
$alarmUtilService.setTotal( $elTotal, ruleList.length );
alarmUtilService.setTotal( $elTotal, ruleList.length );
$timeout(function() {
initPopover();
});
$alarmUtilService.hide( $elLoading, $elEdit );
alarmUtilService.hide( $elLoading, $elEdit );
}, function( errorData ) {}, $elAlert );
}
function updateRule( ruleID, application, serviceType, rule, threshold, sms, email, notes ) {
@@ -194,7 +192,7 @@
"emailSend": email,
"notes": notes
};
$alarmUtilService.sendCRUD( "updateRule", oUpdateRule, function( resultData ) {
alarmUtilService.sendCRUD( "updateRule", oUpdateRule, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
for( var i = 0 ; i < ruleList.length ; i++ ) {
@@ -208,14 +206,14 @@
ruleList[i].notes = notes;
}
}
$alarmUtilService.hide( $elLoading, $elEdit );
alarmUtilService.hide( $elLoading, $elEdit );
$timeout(function() {
initPopover();
});
}, function( errorData ) {}, $elAlert );
}
function removeUser( ruleID ) {
$alarmUtilService.sendCRUD( "removeRule", { "ruleId": ruleID }, function( resultData ) {
alarmUtilService.sendCRUD( "removeRule", { "ruleId": ruleID }, function( resultData ) {
scope.$apply(function() {
for( var i = 0 ; i < ruleList.length ; i++ ) {
if ( ruleList[i].ruleId == ruleID ) {
@@ -224,19 +222,19 @@
}
}
});
$alarmUtilService.setTotal( $elTotal, ruleList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, ruleList.length );
alarmUtilService.hide( $elLoading );
isRemoving = false;
}, function( errorData ) {}, $elAlert );
}
function loadList( isFirst ) {
$alarmUtilService.sendCRUD( "getRuleList", { "userGroupId": currentUserGroupID }, function( resultData ) {
alarmUtilService.sendCRUD( "getRuleList", { "userGroupId": currentUserGroupID }, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
isLoadedRuleList = true;
ruleList = scope.ruleList = resultData;
$alarmUtilService.setTotal( $elTotal, ruleList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, ruleList.length );
alarmUtilService.hide( $elLoading );
$timeout(function() {
initPopover();
});
@@ -245,7 +243,7 @@
function loadRuleSet() {
if ( scope.ruleSets.length > 1 ) return;
$alarmUtilService.sendCRUD( "getRuleSet", {}, function( resultData ) {
alarmUtilService.sendCRUD( "getRuleSet", {}, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
for( var i = 0 ; i < resultData.length ; i++ ) {
@@ -259,9 +257,9 @@
scope.ruleSets = [ {"text": ""} ];
scope.onRefresh = function() {
if ( isRemoving == true ) return;
$at( $at.MAIN, $at.CLK_ALARM_REFRESH_RULE );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_REFRESH_RULE );
reset();
$alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showLoading( $elLoading, false );
loadList( false );
};
scope.onCreate = function() {
@@ -275,14 +273,14 @@
$elEditCheckboxSMS.prop("checked", "");
$elEditCheckboxEmail.prop("checked", "");
$elEditTextareaNotes.val("");
$alarmUtilService.show( $elEdit );
alarmUtilService.show( $elEdit );
};
scope.onUpdate = function($event) {
if ( isRemoving == true ) return;
isCreate = false;
var $el = $( $event.toElement ).parents("tr");
var ruleID = $alarmUtilService.extractID( $el );
var $el = $( $event.toElement || $event.target ).parents("tr");
var ruleID = alarmUtilService.extractID( $el );
var oRule = searchRule( ruleID );
$elEditGuide.html( "Update rule data." );
@@ -293,7 +291,7 @@
$elEditCheckboxEmail.prop("checked", oRule.emailSend);
$elEditTextareaNotes.val( oRule.notes );
$alarmUtilService.show( $elEdit );
alarmUtilService.show( $elEdit );
};
scope.onInputFilter = function($event) {
if ( isRemoving == true ) return;
@@ -314,15 +312,15 @@
var queryRule = $.trim( $elFilterInputRule.val() );
if ( (queryApplication.length != 0 && queryApplication.length < 3) || (queryRule.length != 0 && queryRule.length < 3) ) {
$alarmUtilService.showLoading( $elLoading, false );
$alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
return;
}
$at( $at.MAIN, $at.CLK_ALARM_FILTER_RULE );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_FILTER_RULE );
if ( queryApplication == "" && queryRule == "" ) {
if ( scope.ruleList.length != ruleList.length ) {
scope.ruleList = ruleList;
$alarmUtilService.unsetFilterBackground( $elWrapper );
alarmUtilService.unsetFilterBackground( $elWrapper );
}
$elFilterEmpty.addClass("disabled");
} else {
@@ -344,7 +342,7 @@
}
}
scope.ruleList = newFilterRules;
$alarmUtilService.setFilterBackground( $elWrapper );
alarmUtilService.setFilterBackground( $elWrapper );
}
};
scope.onFilterEmpty = function() {
@@ -361,7 +359,7 @@
}
};
scope.onCancelEdit = function() {
$alarmUtilService.hide( $elEdit );
alarmUtilService.hide( $elEdit );
};
scope.onApplyEdit = function() {
var applicationNServiceType = $elEditSelectApplication.select2("val").split("@");
@@ -372,27 +370,27 @@
var notes = $elEditTextareaNotes.val();
if ( applicationNServiceType[0] == "" || ruleID == "" ) {
$alarmUtilService.showLoading( $elLoading, true );
$alarmUtilService.showAlert( $elAlert, "Select application name and rule.");
alarmUtilService.showLoading( $elLoading, true );
alarmUtilService.showAlert( $elAlert, "Select application name and rule.");
return;
}
$alarmUtilService.showLoading( $elLoading, true );
if ( $alarmUtilService.hasDuplicateItem( ruleList, function( rule ) {
alarmUtilService.showLoading( $elLoading, true );
if ( alarmUtilService.hasDuplicateItem( ruleList, function( rule ) {
return rule.applicationId == applicationNServiceType[0] && rule.checkerName == ruleID;
}) && isCreate == true) {
$alarmUtilService.showAlert( $elAlert, "Exist a same rule set in the lists" );
alarmUtilService.showAlert( $elAlert, "Exist a same rule set in the lists" );
return;
}
if ( isCreate ) {
$at( $at.MAIN, $at.CLK_ALARM_CREATE_RULE );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_CREATE_RULE );
createRule( applicationNServiceType[0], applicationNServiceType[1], ruleID, threshold, sms, email, notes );
} else {
updateRule( $alarmUtilService.extractID( $elEditSelectApplication.parent() ), applicationNServiceType[0], applicationNServiceType[1], ruleID, threshold, sms, email, notes );
updateRule( alarmUtilService.extractID( $elEditSelectApplication.parent() ), applicationNServiceType[0], applicationNServiceType[1], ruleID, threshold, sms, email, notes );
}
};
scope.onCloseAlert = function() {
$alarmUtilService.closeAlert( $elAlert, $elLoading );
alarmUtilService.closeAlert( $elAlert, $elLoading );
};
scope.$on("alarmRule.configuration.load", function( event, userGroupID ) {
currentUserGroupID = userGroupID;
@@ -8,8 +8,8 @@
* @class
*/
pinpointApp.directive('alarmUserGroupDirective', [ '$rootScope', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AlarmBroadcastService',
function ($rootScope, $timeout, helpContentTemplate, helpContentService, $alarmUtilService, $alarmBroadcastService) {
pinpointApp.directive('alarmUserGroupDirective', [ '$rootScope', '$timeout', 'helpContentTemplate', 'helpContentService', 'AlarmUtilService', 'AlarmBroadcastService', 'AnalyticsService',
function ($rootScope, $timeout, helpContentTemplate, helpContentService, alarmUtilService, alarmBroadcastService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -51,8 +51,8 @@
var $elUL = $element.find(".some-list-content ul");
$elUL.on("click", function($event) {
var tagName = $event.toElement.tagName.toLowerCase();
var $target = $($event.toElement);
var $target = $( $event.toElement || $event.target );
var tagName = $target.get(0).tagName.toLowerCase();
var $li = $target.parents("li");
if ( tagName == "button" ) {
@@ -81,13 +81,13 @@
}
});
function reset() {
$alarmUtilService.unsetFilterBackground( $elWrapper );
alarmUtilService.unsetFilterBackground( $elWrapper );
$elFilterInput.val("");
}
function removeConfirm( $el ) {
$alarmUtilService.showLoading( $elLoading, false );
removeGroup( $alarmUtilService.extractID( $el ), $el.find("span.contents").html() );
alarmUtilService.showLoading( $elLoading, false );
removeGroup( alarmUtilService.extractID( $el ), $el.find("span.contents").html() );
}
function removeCancel( $el ) {
$el.find("span.right").remove().end().find("span.remove").show().end().removeClass("remove");
@@ -95,28 +95,28 @@
}
function selectGroup( $el ) {
if ( isRemoving == true ) return;
addSelectClass( $alarmUtilService.extractID( $el ) );
$alarmBroadcastService.sendReloadWithUserGroupID( $el.find("span.contents").html() );
addSelectClass( alarmUtilService.extractID( $el ) );
alarmBroadcastService.sendReloadWithUserGroupID( $el.find("span.contents").html() );
}
function createGroup( name ) {
$alarmUtilService.sendCRUD( "createUserGroup", { "id": name }, function( resultData ) {
alarmUtilService.sendCRUD( "createUserGroup", { "id": name }, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
userGroupList.push({
number: resultData.number,
id: name
});
$alarmBroadcastService.sendInit( resultData.number );
alarmBroadcastService.sendInit( resultData.number );
$timeout(function() {
addSelectClass( resultData.number );
});
$alarmUtilService.setTotal( $elTotal, userGroupList.length );
$alarmUtilService.hide( $elLoading, $elEdit );
alarmUtilService.setTotal( $elTotal, userGroupList.length );
alarmUtilService.hide( $elLoading, $elEdit );
}, function( errorData ) {}, $elAlert );
}
function updateGroup( number, name ) {
$alarmUtilService.sendCRUD( "updateUserGroup", { "number": number, "id": name }, function( resultData ) {
alarmUtilService.sendCRUD( "updateUserGroup", { "number": number, "id": name }, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
for( var i = 0 ; i < userGroupList.length ; i++ ) {
@@ -124,11 +124,11 @@
userGroupList[i].id = name;
}
}
$alarmUtilService.hide( $elLoading, $elEdit );
alarmUtilService.hide( $elLoading, $elEdit );
}, function( errorData ) {}, $elAlert );
}
function removeGroup( number, name ) {
$alarmUtilService.sendCRUD( "removeUserGroup", { "id": name }, function( resultData ) {
alarmUtilService.sendCRUD( "removeUserGroup", { "id": name }, function( resultData ) {
scope.$apply(function() {
for( var i = 0 ; i < userGroupList.length ; i++ ) {
if ( userGroupList[i].number == number ) {
@@ -140,26 +140,26 @@
$timeout(function() {
addSelectClass( userGroupList[0].number );
});
$alarmBroadcastService.sendReloadWithUserGroupID( userGroupList[0].id );
alarmBroadcastService.sendReloadWithUserGroupID( userGroupList[0].id );
} else {
$alarmBroadcastService.sendSelectionEmpty();
alarmBroadcastService.sendSelectionEmpty();
}
});
$alarmUtilService.setTotal( $elTotal, userGroupList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, userGroupList.length );
alarmUtilService.hide( $elLoading );
isRemoving = false;
}, function( errorData ) {}, $elAlert );
}
function loadGroupList( isFirst ) {
$alarmUtilService.sendCRUD( "getUserGroupList", {}, function( resultData ) {
alarmUtilService.sendCRUD( "getUserGroupList", {}, function( resultData ) {
// @TODO
// 많이 쓰는 놈 기준 3개를 뽑아 내야 함.
isLoadedUserGroupList = true;
userGroupList = scope.userGroupList = resultData;
$alarmUtilService.setTotal( $elTotal, userGroupList.length );
$alarmUtilService.hide( $elLoading );
alarmUtilService.setTotal( $elTotal, userGroupList.length );
alarmUtilService.hide( $elLoading );
if ( isFirst ) {
$alarmBroadcastService.sendInit( userGroupList[0].id );
alarmBroadcastService.sendInit( userGroupList[0].id );
selectedGroupNumber = userGroupList[0].number;
}
$timeout(function() {
@@ -170,9 +170,9 @@
};
scope.onRefresh = function() {
if ( isRemoving == true ) return;
$at( $at.MAIN, $at.CLK_ALARM_REFRESH_USER_GROUP );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_REFRESH_USER_GROUP );
reset();
$alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showLoading( $elLoading, false );
loadGroupList( false );
};
scope.onCreate = function() {
@@ -181,20 +181,20 @@
isCreate = true;
$elEditGuide.html( "Create new alarm group" );
$elEditInput.val("");
$alarmUtilService.show( $elEdit );
alarmUtilService.show( $elEdit );
$elEditInput.focus();
};
scope.onUpdate = function($event) {
if ( isRemoving == true ) return;
isCreate = false;
var $el = $( $event.toElement ).parents("li");
var userGroupNumber = $alarmUtilService.extractID( $el );
var $el = $( $event.toElement || $event.target ).parents("li");
var userGroupNumber = alarmUtilService.extractID( $el );
var userGroupID = $el.find("span.contents").html();
$elEditGuide.html( "Input new name of \"" + userGroupID + "\"." );
$elEditInput.val( userGroupID ).prop("id", "updateUserGroup_" + userGroupNumber);
$alarmUtilService.show( $elEdit );
alarmUtilService.show( $elEdit );
$elEditInput.focus().select();
};
scope.onInputFilter = function($event) {
@@ -214,15 +214,15 @@
if ( isRemoving == true ) return;
var query = $.trim( $elFilterInput.val() );
if ( query.length != 0 && query.length < 3 ) {
$alarmUtilService.showLoading( $elLoading, false );
$alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
alarmUtilService.showLoading( $elLoading, false );
alarmUtilService.showAlert( $elAlert, "You must enter at least three characters.");
return;
}
$at( $at.MAIN, $at.CLK_ALARM_FILTER_USER_GROUP );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_FILTER_USER_GROUP );
if ( query == "" ) {
if ( scope.userGroupList.length != userGroupList.length ) {
scope.userGroupList = userGroupList;
$alarmUtilService.unsetFilterBackground( $elWrapper );
alarmUtilService.unsetFilterBackground( $elWrapper );
}
$elFilterEmpty.addClass("disabled");
} else {
@@ -234,7 +234,7 @@
}
}
scope.userGroupList = newFilterUserGroup;
$alarmUtilService.setFilterBackground( $elWrapper );
alarmUtilService.setFilterBackground( $elWrapper );
}
};
scope.onFilterEmpty = function() {
@@ -252,32 +252,32 @@
}
};
scope.onCancelEdit = function() {
$alarmUtilService.hide( $elEdit );
alarmUtilService.hide( $elEdit );
};
scope.onApplyEdit = function() {
var groupName = $.trim( $elEditInput.val() );
if ( groupName == "" ) {
$alarmUtilService.showLoading( $elLoading, true );
$alarmUtilService.showAlert( $elAlert, "Input group id.");
alarmUtilService.showLoading( $elLoading, true );
alarmUtilService.showAlert( $elAlert, "Input group id.");
return;
}
$alarmUtilService.showLoading( $elLoading, true );
if ( $alarmUtilService.hasDuplicateItem( userGroupList, function( userGroup ) {
alarmUtilService.showLoading( $elLoading, true );
if ( alarmUtilService.hasDuplicateItem( userGroupList, function( userGroup ) {
return userGroup.id == groupName;
}) && isCreate == true ) {
$alarmUtilService.showAlert( $elAlert, "Exist a same group name in the lists." );
alarmUtilService.showAlert( $elAlert, "Exist a same group name in the lists." );
return;
}
if ( isCreate ) {
$at( $at.MAIN, $at.CLK_ALARM_CREATE_USER_GROUP );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM_CREATE_USER_GROUP );
createGroup( groupName );
} else {
updateGroup( $alarmUtilService.extractID( $elEditInput ), groupName );
updateGroup( alarmUtilService.extractID( $elEditInput ), groupName );
}
};
scope.onCloseAlert = function() {
$alarmUtilService.closeAlert( $elAlert, $elLoading );
alarmUtilService.closeAlert( $elAlert, $elLoading );
};
scope.$on("alarmUserGroup.configuration.show", function() {
if ( isLoadedUserGroupList === false ) {
@@ -1,23 +1,27 @@
<div class="some-list" style="float:right;width:300px;box-shadow:-4px -4px 16px 0px rgba(0,0,0,0.75);">
<div class="some-list-header header-orange">
<button class="btn btn-warning left" ng-click="onRefresh()"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span></button>
<span class="title">Pinpoint User<span class="total"></span></span>
<button class="btn btn-warning right" ng-click="onCreate()"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
<button class="btn btn-warning right" ng-click="onCreate()" ng-show="isAllowedCreate"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
</div>
<div class="some-list-content move-some-where">
<div class="wrapper"><ul>
<li ng-repeat="pinpointUser in pinpointUserList" id="{{'alarmPinpointUser_' + pinpointUser.userId}}">
<button class="btn btn-warning left move"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span></button>
<button class="btn btn-warning left edit-user"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></button>
<span class="contents">{{"("+pinpointUser.department + ")" + pinpointUser.name}}</span>
<span class="remove">x</span>
</li>
</ul></div>
<div class="wrapper">
<ul>
<li ng-repeat="pinpointUser in pinpointUserList" id="{{'alarmPinpointUser_' + pinpointUser.userId}}">
<button class="btn btn-warning left move"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span></button>
<button class="btn btn-warning left edit-user" ng-show="isAllowedCreate"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></button>
<span class="contents">{{"("+pinpointUser.department + ")" + pinpointUser.name}}</span>
<span class="remove">x</span>
</li>
</ul>
<div class="empty-list" ng-show="pinpointUserList.length == 0">Search Pinpoint User</div>
</div>
<div class="filter-input">
<input type="text" placeholder="Filter pinpoint user" ng-keydown="onInputFilter($event)"/>
<button class="btn btn-warning disabled trash" ng-click="onFilterEmpty()"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
<button class="btn btn-warning" ng-click="onFilterGroup()" style="margin-right:2px"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
<select>
<option value="userName">name</option>
<option value="department">department</option>
</select>
<input type="text" placeholder="Search pinpoint user" ng-keydown="onInputSearch($event)" style="width:50%"/>
<button class="btn btn-warning" ng-click="onSearch()"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
</div>
</div>
<div class="some-edit-content pinpoint hide-me" style="width:300px;">
@@ -34,7 +38,7 @@
</div>
</div>
</div>
<div class="some-loading has-not-edit">
<div class="some-loading has-not-edit hide-me">
<div class="timer-loader" style="margin-top:72%"></div>
<div class="some-alert hide-me">
<span class="message"></span>
@@ -15,8 +15,8 @@
}
});
pinpointApp.controller('ConfigurationCtrl', [ '$scope','$element', 'ConfigurationConfig',
function ($scope, $element, $constant) {
pinpointApp.controller('ConfigurationCtrl', [ '$scope','$element', 'ConfigurationConfig', 'AnalyticsService',
function ($scope, $element, $constant, analyticsService) {
var $elBody = $element.find(".modal-body");
$scope.descriptionOfCurrentTab = "Set your option";
@@ -42,26 +42,26 @@
$scope.currentTab = tab;
switch( tab ) {
case $constant.menu.GENERAL:
$at( $at.MAIN, $at.CLK_GENERAL );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_GENERAL );
$elBody.css("background-color", "#e9eaed");
$scope.descriptionOfCurrentTab = "Set your option";
$scope.$broadcast( "general.configuration.show");
break;
case $constant.menu.ALARM:
$at( $at.MAIN, $at.CLK_ALARM );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_ALARM );
$elBody.css("background-color", "#e9eaed");
$scope.descriptionOfCurrentTab = "Set your alarm rules";
$scope.$broadcast( "alarmUserGroup.configuration.show");
break;
case $constant.menu.HELP:
$at( $at.MAIN, $at.CLK_HELP );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_HELP );
$elBody.css("background-color", "#FFF");
$scope.descriptionOfCurrentTab = "";
break;
}
}
$scope.$on("configuration.show", function() {
$at( $at.MAIN, $at.CLK_CONFIGURATION );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_CONFIGURATION );
$element.modal('show');
});
@@ -16,11 +16,8 @@
pinpointApp.controller('GeneralCtrl', [ '$scope','$element', 'GeneralConfig',
function ($scope, $element, $constant) {
//@TODO
//통계 추가할 것.
//$at($at.FILTEREDMAP_PAGE);
$scope.$on("general.configuration.show", function() {
console.log( "general show");
});
}
]);
@@ -12,7 +12,7 @@
// myColors: ["#c9e7a5", "#bbcdf0", "#fce0b5", "#f69124", "#f53034"]
});
pinpointApp.directive('loadChartDirective', ['loadChartDirectiveConfig', '$timeout', function (cfg, $timeout) {
pinpointApp.directive('loadChartDirective', ['loadChartDirectiveConfig', '$timeout', 'AnalyticsService', function (cfg, $timeout, analyticsService) {
return {
template: '<div></div>',
replace: true,
@@ -169,7 +169,7 @@
}
oChart = AmCharts.makeChart(id, options);
oChart.addListener("clickGraph", function(e) {
$at($at.MAIN, $at.CLK_LOAD_GRAPH);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_LOAD_GRAPH);
});
});
};
@@ -13,8 +13,8 @@
periodTypePrefix: '.navbar.periodType'
});
pinpointApp.directive('navbarDirective', [ 'cfg', '$rootScope', '$http','$document', '$timeout', '$window', 'webStorage', 'helpContentTemplate', 'helpContentService',
function (cfg, $rootScope, $http, $document, $timeout, $window, webStorage, helpContentTemplate, helpContentService) {
pinpointApp.directive('navbarDirective', [ 'cfg', '$rootScope', '$http','$document', '$timeout', '$window', 'webStorage', 'helpContentTemplate', 'helpContentService', 'AnalyticsService',
function (cfg, $rootScope, $http, $document, $timeout, $window, webStorage, helpContentTemplate, helpContentService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -389,7 +389,7 @@
return m;
}
}).on("change", function (e) {
$at( $at.MAIN, $at.CLK_APPLICATION );
analyticsService.send( analyticsService.CONST.MAIN, analyticsService.CONST.CLK_APPLICATION );
scope.application = e.val;
scope.$digest();
broadcast();
@@ -442,7 +442,7 @@
* @param readablePeriod
*/
scope.setPeriod = function (readablePeriod) {
$at($at.MAIN, $at.CLK_TIME, readablePeriod);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_TIME, readablePeriod);
scope.periodDelay = true;
scope.readablePeriod = readablePeriod;
scope.autoUpdate = false;
@@ -515,13 +515,13 @@
* @param time
*/
scope.setAutoUpdateTime = function (time) {
$at($at.MAIN, $at.CLK_UPDATE_TIME, time + "s");
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_UPDATE_TIME, time + "s");
scope.timeCountDown = time;
scope.timeLeft = time;
};
scope.setNodeRange = function(range) {
$at($at.MAIN, $at.CLK_CALLEE_RANGE, range);
$at($at.MAIN, $at.CLK_CALLER_RANGE, range);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_CALLEE_RANGE, range);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_CALLER_RANGE, range);
scope.range = range;
setRangeToStorage(scope.application, range);
broadcast();
@@ -550,7 +550,7 @@
* @param type
*/
scope.togglePeriod = function (type) {
$at($at.MAIN, $at.TG_DATE, type);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.TG_DATE, type);
scope.periodType = type;
scope.autoUpdate = false;
};
@@ -564,7 +564,7 @@
*/
scope.$watch('autoUpdate', function (newVal, oldVal) {
if (newVal) {
$at($at.MAIN, $at.TG_UPDATE_ON);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.TG_UPDATE_ON);
$timeout(startUpdate, 1000);
} else {
resetTimeLeft();
@@ -13,8 +13,8 @@
maxTimeToShowLoadAsDefaultForUnknown: 60 * 60 * 12 // 12h
});
pinpointApp.directive('nodeInfoDetailsDirective', [ 'nodeInfoDetailsDirectiveConfig', '$filter', '$timeout', 'isVisibleService', '$window', 'helpContentTemplate', 'helpContentService',
function (cfg, $filter, $timeout, isVisibleService, $window, helpContentTemplate, helpContentService) {
pinpointApp.directive('nodeInfoDetailsDirective', [ 'nodeInfoDetailsDirectiveConfig', '$filter', '$timeout', 'isVisibleService', '$window', 'helpContentTemplate', 'helpContentService', 'AnalyticsService',
function (cfg, $filter, $timeout, isVisibleService, $window, helpContentTemplate, helpContentService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -261,7 +261,7 @@
* @param applicationName
*/
scope.renderNodeAgentCharts = function (applicationName) {
$at($at.MAIN, $at.CLK_SHOW_GRAPH);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_SHOW_GRAPH);
if (angular.isDefined(htAgentChartRendered[applicationName])) return;
htAgentChartRendered[applicationName] = true;
renderResponseSummary(null, applicationName, htLastNode.agentHistogram[applicationName], '100%', '150px');
@@ -11,8 +11,8 @@
myColors: ["#2ca02c", "#3c81fa", "#f8c731", "#f69124", "#f53034"]
});
pinpointApp.directive('responseTimeChartDirective', ['responseTimeChartDirectiveConfig', '$timeout',
function (cfg, $timeout) {
pinpointApp.directive('responseTimeChartDirective', ['responseTimeChartDirectiveConfig', '$timeout', 'AnalyticsService',
function (cfg, $timeout, analyticsService) {
return {
template: '<div></div>',
replace: true,
@@ -98,7 +98,7 @@
// $at($at.MAIN, $at.CLK_RESPONSE_GRAPH);
// });
oChart.addListener('clickGraphItem', function(event) {
$at($at.MAIN, $at.CLK_RESPONSE_GRAPH);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_RESPONSE_GRAPH);
if ( event.item.category == "Error" ) {
scope.$emit('responseTimeChartDirective.errorClicked' );
}
@@ -16,7 +16,8 @@ var BigScatterChart = $.Class({
* @param {Object} option option object
* @param {Service} helpContentService angularjs service object
*/
$init: function (htOption, helpContentTemplate, helpContentService, webStorage) {
$init: function (htOption, helpContentTemplate, helpContentService, webStorage, analyticsService) {
this.analyticsService = analyticsService;
this.option({
'sContainerId': '',
'sPrefix': 'bigscatterchart-',
@@ -551,7 +552,7 @@ var BigScatterChart = $.Class({
sYMax = sPrefix + 'ymax';
var fConfigToggle = function (e) {
$at($at.MAIN, $at.CLK_SCATTER_SETTING);
self.analyticsService.send(self.analyticsService.CONST.MAIN, self.analyticsService.CONST.CLK_SCATTER_SETTING);
self._welConfigBg.toggle();
self._welConfigLayer.toggle();
$('#' + sYMin).val(self.option('nYMin'));
@@ -625,7 +626,7 @@ var BigScatterChart = $.Class({
// download
var fDownloadToggle = function (e) {
$at($at.MAIN, $at.CLK_DOWNLOAD_SCATTER);
self.analyticsService.send(self.analyticsService.CONST.MAIN, self.analyticsService.CONST.CLK_DOWNLOAD_SCATTER);
var sImageUrl = self.getChartAsPNG();
// document.location.href = sImageUrl.replace("image/png", "image/octet-stream");
$(this).attr({
@@ -689,9 +690,9 @@ var BigScatterChart = $.Class({
_.each(this._htwelTypeLi, function (welTypeLi, sKey) {
welTypeLi.click(function (e) {
if ( sKey === "Success" ) {
$at($at.MAIN, $at.TG_SCATTER_SUCCESS, welTypeLi.hasClass('unchecked') ? $at.ON : $at.OFF );
self.analyticsService.send(self.analyticsService.CONST.MAIN, self.analyticsService.CONST.TG_SCATTER_SUCCESS, welTypeLi.hasClass('unchecked') ? self.analyticsService.CONST.ON : self.analyticsService.CONST.OFF );
} else {
$at($at.MAIN, $at.TG_SCATTER_FAILED, welTypeLi.hasClass('unchecked') ? $at.ON : $at.OFF );
self.analyticsService.send(self.analyticsService.CONST.MAIN, self.analyticsService.CONST.TG_SCATTER_FAILED, welTypeLi.hasClass('unchecked') ? self.analyticsService.CONST.ON : self.analyticsService.CONST.OFF );
}
e.preventDefault();
@@ -67,8 +67,8 @@
// FIXME made global to allow access from the child window. Refactor later.
//var selectdTracesBox = {};
pinpointApp.directive('scatterDirective', ['scatterDirectiveConfig', '$rootScope', '$timeout', 'webStorage', 'TransactionDaoService', '$window', 'helpContentTemplate', 'helpContentService',
function (cfg, $rootScope, $timeout, webStorage, oTransactionDaoService, $window, helpContentTemplate, helpContentService) {
pinpointApp.directive('scatterDirective', ['scatterDirectiveConfig', '$rootScope', '$timeout', 'webStorage', 'TransactionDaoService', '$window', 'helpContentTemplate', 'helpContentService', 'AnalyticsService',
function (cfg, $rootScope, $timeout, webStorage, oTransactionDaoService, $window, helpContentTemplate, helpContentService, analyticsService) {
return {
template: '<div id="scatter"></div>',
restrict: 'EA',
@@ -234,7 +234,7 @@
};
var oScatterChart = null;
oScatterChart = new BigScatterChart(options, helpContentTemplate, helpContentService, webStorage);
oScatterChart = new BigScatterChart(options, helpContentTemplate, helpContentService, webStorage, analyticsService);
$timeout(function () {
if (angular.isUndefined(scatterData)) {
oScatterChart.drawWithDataSource(getDataSource(title, start, end, filter));
@@ -20,7 +20,8 @@
* @method ServerMap#$init
* @param {object}
*/
$init: function (htOption, $location) {
$init: function (htOption, $location, analyticsService) {
this.analyticsService = analyticsService;
this._query = "";
this.option({
"sContainerId": '',
@@ -595,7 +596,7 @@
margin: 2,
visible : false,
click: function(e, o) {
$at($at.MAIN, $at.TG_NODE_VIEW);
self.analyticsService.send(self.analyticsService.CONST.MAIN, self.analyticsService.CONST.TG_NODE_VIEW);
e.bubbles = false;
var isCollapse = o.part.data.isCollapse;
self._oDiagram.model.setDataProperty( o.part.data, "isCollapse", !isCollapse );
@@ -1240,7 +1241,7 @@
var node = obj.part,
fOnNodeSubGroupClicked = this.option('fOnNodeSubGroupClicked');
if (_.isFunction(fOnNodeSubGroupClicked)) {
$at($at.MAIN, $at.CLK_NODE);
this.analyticsService.send(this.analyticsService.CONST.MAIN, this.analyticsService.CONST.CLK_NODE);
fOnNodeSubGroupClicked.call(this, e, node, unknownKey, fromName);
}
},
@@ -1257,7 +1258,7 @@
htData = node.data,
fOnNodeClicked = this.option('fOnNodeClicked');
if (_.isFunction(fOnNodeClicked)) {
$at($at.MAIN, $at.CLK_NODE);
this.analyticsService.send(this.analyticsService.CONST.MAIN, this.analyticsService.CONST.CLK_NODE);
fOnNodeClicked.call(this, e, htData, unknownKey, query);
}
},
@@ -1305,7 +1306,7 @@
htData = link.data,
fOnLinkClicked = this.option('fOnLinkClicked');
if (_.isFunction(fOnLinkClicked)) {
$at($at.MAIN, $at.CLK_LINK);
this.analyticsService.send(this.analyticsService.CONST.MAIN, this.analyticsService.CONST.CLK_LINK);
htData.fromNode = obj.fromNode.part.data;
htData.toNode = obj.toNode.part.data;
fOnLinkClicked.call(this, e, htData);
@@ -41,8 +41,8 @@
}
});
pinpointApp.directive('serverMapDirective', [ 'serverMapDirectiveConfig', 'ServerMapDaoService', 'AlertsService', 'ProgressBarService', 'SidebarTitleVoService', '$filter', 'ServerMapFilterVoService', 'filteredMapUtilService', '$base64', 'ServerMapHintVoService', '$timeout', '$location', '$window', 'helpContentTemplate', 'helpContentService',
function (cfg, ServerMapDaoService, AlertsService, ProgressBarService, SidebarTitleVoService, $filter, ServerMapFilterVoService, filteredMapUtilService, $base64, ServerMapHintVoService, $timeout, $location, $window, helpContentTemplate, helpContentService) {
pinpointApp.directive('serverMapDirective', [ 'serverMapDirectiveConfig', 'ServerMapDaoService', 'AlertsService', 'ProgressBarService', 'SidebarTitleVoService', '$filter', 'ServerMapFilterVoService', 'filteredMapUtilService', '$base64', 'ServerMapHintVoService', '$timeout', '$location', '$window', 'helpContentTemplate', 'helpContentService', 'AnalyticsService',
function (cfg, ServerMapDaoService, AlertsService, ProgressBarService, SidebarTitleVoService, $filter, ServerMapFilterVoService, filteredMapUtilService, $base64, ServerMapHintVoService, $timeout, $location, $window, helpContentTemplate, helpContentService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -443,7 +443,7 @@
oProgressBarService.setLoading(100);
if (oServerMap === null) {
oServerMap = new ServerMap(options, $location);
oServerMap = new ServerMap(options, $location, analyticsService);
} else {
oServerMap.option(options);
}
@@ -562,7 +562,7 @@
* passing transaction list
*/
scope.passingTransactionList = function () {
$at($at.CONTEXT, $at.CLK_FILTER_TRANSACTION);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.CLK_FILTER_TRANSACTION);
var oServerMapFilterVoService = new ServerMapFilterVoService();
oServerMapFilterVoService
.setMainApplication(htLastLink.filterApplicationName)
@@ -585,7 +585,7 @@
* open filter wizard
*/
scope.openFilterWizard = function () {
$at($at.CONTEXT, $at.CLK_FILTER_TRANSACTION_WIZARD);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.CLK_FILTER_TRANSACTION_WIZARD);
openFilterWizard();
};
@@ -663,7 +663,7 @@
* toggle merge group
*/
scope.toggleMergeGroup = function ( mergeType ) {
$at($at.CONTEXT, $at.TG_MERGE_TYPE, mergeType);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.TG_MERGE_TYPE, mergeType);
scope.mergeStatus[ mergeType ] = !scope.mergeStatus[ mergeType ];
//scope.mergeUnknowns = (scope.mergeUnknowns) ? false : true;
serverMapCallback(htLastQuery, ServerMapDaoService.extractDataFromApplicationMapData(htLastMapData.applicationMapData), scope.linkRouting, scope.linkCurve);
@@ -676,11 +676,11 @@
*/
scope.toggleLinkLableTextType = function (type) {
if ( type === "tps" ) {
$at($at.CONTEXT, $at.TG_TPS);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.TG_TPS);
scope.totalRequestCount = false;
scope.tps = true;
} else {
$at($at.CONTEXT, $at.TG_CALL_COUNT);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.TG_CALL_COUNT);
scope.totalRequestCount = true;
scope.tps = false;
}
@@ -696,7 +696,7 @@
* @param type
*/
scope.toggleLinkRouting = function (type) {
$at($at.CONTEXT, $at.TG_ROUTING, type);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.TG_ROUTING, type);
scope.linkRouting = cfg.options.htLinkType.sRouting = type;
serverMapCallback(htLastQuery, htLastMergedMapData, scope.linkRouting, scope.linkCurve);
reset();
@@ -707,7 +707,7 @@
* @param type
*/
scope.toggleLinkCurve = function (type) {
$at($at.CONTEXT, $at.TG_CURVE, type);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.TG_CURVE, type);
scope.linkCurve = cfg.options.htLinkType.sCurve = type;
serverMapCallback(htLastQuery, htLastMergedMapData, scope.linkRouting, scope.linkCurve);
reset();
@@ -717,7 +717,7 @@
* refresh
*/
scope.refresh = function () {
$at($at.CONTEXT, $at.CLK_REFRESH);
analyticsService.send(analyticsService.CONST.CONTEXT, analyticsService.CONST.CLK_REFRESH);
if (oServerMap) {
oServerMap.refresh();
@@ -790,14 +790,14 @@
}
scope.searchNode = function() {
if (oServerMap && scope.searchNodeQuery !== "" ) {
$at($at.MAIN, $at.CLK_SEARCH_NODE);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_SEARCH_NODE);
scope.searchNodeIndex = 0;
scope.searchNodeList = oServerMap.searchNode( scope.searchNodeQuery );
jQuery(element).find(".search-result").show().find(".count").html("Result : " + scope.searchNodeList.length);
}
};
scope.clearSearchNode = function() {
$at($at.MAIN, $at.CLK_CLEAR_SEARCH);
analyticsService.send(analyticsService.CONST.MAIN, analyticsService.CONST.CLK_CLEAR_SEARCH);
oServerMap.clearQuery();
scope.searchNodeIndex = 0;
scope.searchNodeQuery = "";
@@ -11,7 +11,7 @@
scaleCount: 10
});
pinpointApp.directive('timeSliderDirective', [ 'timeSliderDirectiveConfig', '$timeout', function (cfg, $timeout) {
pinpointApp.directive('timeSliderDirective', [ 'timeSliderDirectiveConfig', '$timeout', 'AnalyticsService', function (cfg, $timeout, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -127,7 +127,7 @@
* scope more
*/
scope.more = function () {
$at($at.CALLSTACK, $at.CLK_MORE);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_MORE);
scope.$emit('timeSliderDirective.moreClicked', scope.oTimeSliderVoService);
};
@@ -7,7 +7,7 @@
* @name timelineDirective
* @class
*/
pinpointApp.directive('timelineDirective', function () {
pinpointApp.directive('timelineDirective', ['AnalyticsService', function (analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -101,7 +101,7 @@
};
$(element).on("click", ".clickable-bar", function() {
$at($at.CALLSTACK, $at.CLK_CALL);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_CALL);
scope.$emit( "transactionDetail.selectDistributedCallFlowRow", scope.newCallStacks[parseInt($(this).parent().attr("data-index"))][6] );
});
$(element).on("mouseenter", ".timeline-bar-frame", function(event) {
@@ -163,5 +163,5 @@
}
}
};
});
}]);
})(jQuery);
@@ -7,7 +7,7 @@
* @name transactionTableDirective
* @class
*/
pinpointApp.directive('transactionTableDirective', ['$window', 'helpContentTemplate', 'helpContentService', function ($window, helpContentTemplate, helpContentService) {
pinpointApp.directive('transactionTableDirective', ['$window', 'helpContentTemplate', 'helpContentService', 'AnalyticsService', function ($window, helpContentTemplate, helpContentService, analyticsService) {
return {
restrict: 'EA',
replace: true,
@@ -63,7 +63,7 @@
* @param transaction
*/
scope.traceByApplication = function (transaction) {
$at($at.CALLSTACK, $at.CLK_TRANSACTION);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_TRANSACTION);
scope.currentTransaction = transaction;
scope.$emit('transactionTableDirective.applicationSelected', transaction);
};
@@ -95,7 +95,7 @@
} else {
scope.transactionReverse = false;
}
$at($at.CALLSTACK, $at.ST_ + orderKey.charAt(0).toUpperCase() + orderKey.substring(1), scope.transactionReverse ? $at.DESCENDING : $at.ASCENDING );
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.ST_ + orderKey.charAt(0).toUpperCase() + orderKey.substring(1), scope.transactionReverse ? analyticsService.CONST.DESCENDING : analyticsService.CONST.ASCENDING );
scope.transactionOrderBy = orderKey;
};
+2 -2
View File
@@ -117,7 +117,6 @@
<!-- analytics -->
<script src="scripts/extra/google-analytics.js"></script>
<script src="scripts/extra/event-analytics.js"></script>
<!-- end -->
</head>
<body ng-app="pinpointApp">
@@ -410,11 +409,12 @@
<script src="common/services/server-map-filter-vo.service.js?v=${buildTime}"></script>
<script src="common/services/alarm-ajax.service.js?v=${buildTime}"></script>
<script src="common/services/alarm-util.service.js?v=${buildTime}"></script>
<script src="common/services/alarm-communication.service.js?v=${buildTime}"></script>
<script src="common/services/alarm-broadcast.service.js?v=${buildTime}"></script>
<script src="common/services/server-map-hint-vo.service.js?v=${buildTime}"></script>
<script src="common/services/is-visible.service.js?v=${buildTime}"></script>
<script src="common/services/user-locales.service.js?v=${buildTime}"></script>
<script src="common/services/help-content.service.js?v=${buildTime}"></script>
<script src="common/services/analytics.service.js?v=${buildTime}"></script>
<script src="common/help/help-content-en.js?v=${buildTime}"></script>
<script src="common/help/help-content-ko.js?v=${buildTime}"></script>
<script src="common/help/help-content-template.js?v=${buildTime}"></script>
@@ -7,9 +7,9 @@
* @name FilteredMapCtrl
* @class
*/
pinpointApp.controller('FilteredMapCtrl', [ 'filterConfig', '$scope', '$routeParams', '$timeout', 'TimeSliderVoService', 'NavbarVoService', '$window', 'SidebarTitleVoService', 'filteredMapUtilService', '$rootElement',
function (cfg, $scope, $routeParams, $timeout, TimeSliderVoService, NavbarVoService, $window, SidebarTitleVoService, filteredMapUtilService, $rootElement) {
$at($at.FILTEREDMAP_PAGE);
pinpointApp.controller('FilteredMapCtrl', [ 'filterConfig', '$scope', '$routeParams', '$timeout', 'TimeSliderVoService', 'NavbarVoService', '$window', 'SidebarTitleVoService', 'filteredMapUtilService', '$rootElement', 'AnalyticsService',
function (cfg, $scope, $routeParams, $timeout, TimeSliderVoService, NavbarVoService, $window, SidebarTitleVoService, filteredMapUtilService, $rootElement, analyticsService) {
analyticsService.send(analyticsService.CONST.FILTEREDMAP_PAGE);
// define private variables
var oNavbarVoService, oTimeSliderVoService, bNodeSelected, bNoData, reloadOnlyForNode, reloadOnlyForLink;
@@ -7,9 +7,9 @@
* @name InspectorCtrl
* @class
*/
pinpointApp.controller('InspectorCtrl', [ '$scope', '$timeout', '$routeParams', 'locationService', 'NavbarVoService',
function ($scope, $timeout, $routeParams, locationService, NavbarVoService) {
$at($at.INSPECTOR_PAGE);
pinpointApp.controller('InspectorCtrl', [ '$scope', '$timeout', '$routeParams', 'locationService', 'NavbarVoService', 'AnalyticsService',
function ($scope, $timeout, $routeParams, locationService, NavbarVoService, analyticsService) {
analyticsService.send(analyticsService.CONST.INSPECTOR_PAGE);
// define private variables
var oNavbarVoService, oAgent;
@@ -7,9 +7,9 @@
* @name MainCtrl
* @class
*/
pinpointApp.controller('MainCtrl', [ 'filterConfig', '$scope', '$timeout', '$routeParams', 'locationService', 'NavbarVoService', '$window', 'SidebarTitleVoService', 'filteredMapUtilService', '$rootElement',
function (cfg, $scope, $timeout, $routeParams, locationService, NavbarVoService, $window, SidebarTitleVoService, filteredMapUtilService, $rootElement) {
$at($at.MAIN_PAGE);
pinpointApp.controller('MainCtrl', [ 'filterConfig', '$scope', '$timeout', '$routeParams', 'locationService', 'NavbarVoService', '$window', 'SidebarTitleVoService', 'filteredMapUtilService', '$rootElement', 'AnalyticsService',
function (cfg, $scope, $timeout, $routeParams, locationService, NavbarVoService, $window, SidebarTitleVoService, filteredMapUtilService, $rootElement, analyticsService) {
analyticsService.send(analyticsService.CONST.MAIN_PAGE);
// define private variables
var oNavbarVoService, bNodeSelected, bNoData;
@@ -7,9 +7,9 @@
* @name ScatterFullScreenModeCtrl
* @class
*/
pinpointApp.controller('ScatterFullScreenModeCtrl', [ '$scope', '$rootScope', '$routeParams', '$timeout', 'NavbarVoService',
function ($scope, $rootScope, $routeParams, $timeout, NavbarVoService) {
$at($at.SCATTER_FULL_SCREEN_PAGE);
pinpointApp.controller('ScatterFullScreenModeCtrl', [ '$scope', '$rootScope', '$routeParams', '$timeout', 'NavbarVoService', 'AnalyticsService',
function ($scope, $rootScope, $routeParams, $timeout, NavbarVoService, analyticsService) {
analyticsService.send(analyticsService.CONST.SCATTER_FULL_SCREEN_PAGE);
// define private variables
var oNavbarVoService;
@@ -11,9 +11,9 @@
applicationUrl: '/transactionInfo.pinpoint'
});
pinpointApp.controller('TransactionDetailCtrl', ['TransactionDetailConfig', '$scope', '$rootScope', '$routeParams', '$timeout', '$rootElement', 'AlertsService', 'ProgressBarService', 'TransactionDaoService', '$window', '$location', 'helpContentTemplate', 'helpContentService',
function (cfg, $scope, $rootScope, $routeParams, $timeout, $rootElement, AlertsService, ProgressBarService, TransactionDaoService, $window, $location, helpContentTemplate, helpContentService) {
$at($at.TRANSACTION_DETAIL_PAGE);
pinpointApp.controller('TransactionDetailCtrl', ['TransactionDetailConfig', '$scope', '$rootScope', '$routeParams', '$timeout', '$rootElement', 'AlertsService', 'ProgressBarService', 'TransactionDaoService', '$window', '$location', 'helpContentTemplate', 'helpContentService', 'AnalyticsService',
function (cfg, $scope, $rootScope, $routeParams, $timeout, $rootElement, AlertsService, ProgressBarService, TransactionDaoService, $window, $location, helpContentTemplate, helpContentService, analyticsService) {
analyticsService.send(analyticsService.CONST.TRANSACTION_DETAIL_PAGE);
// define private variables
var oAlertService, oProgressBarService, bShowCallStacksOnce, bIsFirstTimelineView = true;
@@ -145,7 +145,7 @@
$window.open('/#/transactionView/' + $scope.transactionDetail.agentId + '/' + $scope.transactionDetail.transactionId + '/' + $scope.transactionDetail.callStackStart);
};
$scope.$on("transactionDetail.selectDistributedCallFlowRow", function( event, rowId ) {
$at($at.CALLSTACK, $at.CLK_DISTRIBUTED_CALL_FLOW);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_DISTRIBUTED_CALL_FLOW);
$("#traceTabs li:nth-child(1) a").trigger("click");
$scope.$broadcast('distributedCallFlowDirective.selectRow.forTransactionDetail', rowId);
});
@@ -173,7 +173,7 @@
$('#traceTabs li a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
if ( e.target.href.indexOf( "#CallStacks") != -1 ) {
$at($at.CALLSTACK, $at.CLK_DISTRIBUTED_CALL_FLOW);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_DISTRIBUTED_CALL_FLOW);
// $("#traceTabs li:nth-child(5)").show();
}
});
@@ -182,13 +182,13 @@
e.preventDefault();
});
$("#traceTabs li:nth-child(2) a").bind("click", function (e) {
$at($at.CALLSTACK, $at.CLK_SERVER_MAP);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_SERVER_MAP);
initSearchVar();
$scope.$broadcast('serverMapDirective.initializeWithMapData', $scope.transactionDetail);
});
var testCount = 0;
$("#traceTabs li:nth-child(3) a").bind("click", function (e) {
$at($at.CALLSTACK, $at.CLK_RPC_TIMELINE);
analyticsService.send(analyticsService.CONST.CALLSTACK, analyticsService.CONST.CLK_RPC_TIMELINE);
initSearchVar();
if (bIsFirstTimelineView){
$scope.$broadcast('timelineDirective.initialize', $scope.transactionDetail);
@@ -18,9 +18,9 @@
}
});
pinpointApp.controller('TransactionListCtrl', ['TransactionListConfig', '$scope', '$routeParams', '$rootScope', '$timeout', '$window', '$http', 'webStorage', 'TimeSliderVoService', 'TransactionDaoService',
function (cfg, $scope, $routeParams, $rootScope, $timeout, $window, $http, webStorage, TimeSliderVoService, oTransactionDaoService) {
$at($at.TRANSACTION_LIST_PAGE);
pinpointApp.controller('TransactionListCtrl', ['TransactionListConfig', '$scope', '$routeParams', '$rootScope', '$timeout', '$window', '$http', 'webStorage', 'TimeSliderVoService', 'TransactionDaoService', 'AnalyticsService',
function (cfg, $scope, $routeParams, $rootScope, $timeout, $window, $http, webStorage, TimeSliderVoService, oTransactionDaoService, analyticsService) {
analyticsService.send(analyticsService.CONST.TRANSACTION_LIST_PAGE);
// define private variables
var nFetchCount, nLastFetchedIndex, htTransactionInfo, htTransactionData, oTimeSliderVoService;
@@ -11,9 +11,9 @@
applicationUrl: '/transactionInfo.pinpoint'
});
pinpointApp.controller('TransactionViewCtrl', [ 'TransactionViewConfig', '$scope', '$rootScope', '$rootElement', 'AlertsService', 'ProgressBarService', '$timeout', '$routeParams', 'TransactionDaoService', 'AgentDaoService',
function (cfg, $scope, $rootScope, $rootElement, AlertsService, ProgressBarService, $timeout, $routeParams, TransactionDaoService, AgentDaoService) {
$at($at.TRANSACTION_VIEW_PAGE);
pinpointApp.controller('TransactionViewCtrl', [ 'TransactionViewConfig', '$scope', '$rootScope', '$rootElement', 'AlertsService', 'ProgressBarService', '$timeout', '$routeParams', 'TransactionDaoService', 'AgentDaoService', 'AnalyticsService',
function (cfg, $scope, $rootScope, $rootElement, AlertsService, ProgressBarService, $timeout, $routeParams, TransactionDaoService, AgentDaoService, analyticsService) {
analyticsService.send(analyticsService.CONST.TRANSACTION_VIEW_PAGE);
// define private variables
var oAlertService, oProgressBarService;
+11 -3
View File
@@ -51,14 +51,22 @@ pinpointApp.config(['$routeProvider', '$locationProvider', '$modalProvider', fun
angular.extend($modalProvider.defaults, {
animation: 'am-flip-x'
});
// Completely disable SCE. For demonstration purposes only!
// Do not use in new projects.
// $sceProvider.enabled(false);
}]);
pinpointApp.run([ '$rootScope', '$timeout', '$modal', '$location', '$cookies', '$interval',
function ($rootScope, $timeout, $modal, $location, $cookies, $interval) {
pinpointApp.value("globalConfig", {
"sendAllowed": true,
"createUserAllowed": true
});
pinpointApp.run([ '$rootScope', '$timeout', '$modal', '$location', '$cookies', '$interval', '$http', 'globalConfig',
function ($rootScope, $timeout, $modal, $location, $cookies, $interval, $http, globalConfig) {
$http.get('/configuration.pinpoint').then(function(result) {
globalConfig.sendAllowed = result.data.sendUsage;
globalConfig.createUserAllowed = result.data.editUserInfo || true;
}, function(error) {});
if (!isCanvasSupported()) {
$timeout(function () {
$('#supported-browsers').modal();
@@ -1,109 +0,0 @@
(function( global, $ ) {
var bSendAllowed = true;
var $at = function() {};
if ( typeof ga !== "undefined" && bSendAllowed === true ) {
$at = function( category, name, label, count, options ) {
if ( arguments.length == 1 ) {
ga( 'send', 'pageview', arguments[0] );
} else {
ga( 'send', 'event', category, name, label, count, options );
}
};
} else if ( typeof wcs !== "undefined" ) {
$at = function( category, name, label ) {
if ( arguments.length == 1 ) return;
if ( typeof label !== "undefined" || typeof label !== "null" ) {
name = name + "_" + label;
}
wcs.event( category, name );
};
}
$at.MAIN = "Main";
$at.CONTEXT = "Context";
$at.CALLSTACK = "CallStack";
$at.MIXEDVIEW = "MixedView";
$at.CLK_APPLICATION = "ClickApplication";
$at.CLK_TIME = "ClickTime";
$at.CLK_SEARCH_NODE = "ClickSearchNode";
$at.CLK_CLEAR_SEARCH = "ClickClearSearch";
$at.CLK_NODE = "ClickNode";
$at.CLK_LINK = "ClickLink";
$at.CLK_UPDATE_TIME = "ClickUpdateTime";
$at.CLK_HELP = "ClickHelp";
$at.CLK_SCATTER_SETTING = "ClickScatterSetting";
$at.CLK_DOWNLOAD_SCATTER = "ClickDownloadScatter";
$at.CLK_RESPONSE_GRAPH = "ClickResponseGraph";
$at.CLK_LOAD_GRAPH = "ClickLoadGraph";
$at.CLK_SHOW_GRAPH = "ClickShowGraph";
$at.CLK_FILTER_TRANSACTION = "ClickFilterTransaction";
$at.CLK_FILTER_TRANSACTION_WIZARD = "ClickFilterTransactionWizard";
$at.CLK_MORE = "ClickMore";
$at.CLK_DISTRIBUTED_CALL_FLOW = "ClickDistributedCallFlow";
$at.CLK_SERVER_MAP = "ClickServerMap";
$at.CLK_RPC_TIMELINE = "ClickRPCTimeline";
$at.CLK_CALL = "ClickCall";
$at.CLK_TRANSACTION = "ClickTransaction";
$at.CLK_HEAP = "ClickHeap";
$at.CLK_PERM_GEN = "ClickPermGen";
$at.CLK_CPU_LOAD = "ClickCpuLoad";
$at.CLK_REFRESH = "ClickRefresh";
$at.CLK_CALLEE_RANGE = "ClickCalleeRange";
$at.CLK_CALLER_RANGE = "ClickCallerRange";
$at.CLK_CONFIGURATION = "ClickConfiguration";
$at.CLK_GENERAL = "ClickConfigurationGeneral";
$at.CLK_ALARM = "ClickConfigurationAlarm";
$at.CLK_HELP = "ClickConfigurationHelp";
$at.CLK_ALARM_CREATE_USER_GROUP = "ClickAlarmCreateUserGroup";
$at.CLK_ALARM_REFRESH_USER_GROUP = "ClickAlarmRefreshUserGroup";
$at.CLK_ALARM_FILTER_USER_GROUP = "ClickAlarmFilterUserGroup";
$at.CLK_ALARM_ADD_USER = "ClickAlarmAddUser";
$at.CLK_ALARM_REFRESH_USER = "ClickAlarmRefreshUser";
$at.CLK_ALARM_FILTER_USER = "ClickAlarmFilterUser";
$at.CLK_ALARM_CREATE_PINPOINT_USER = "ClickAlarmCreatePinpointUser";
$at.CLK_ALARM_REFRESH_PINPOINT_USER = "ClickAlarmRefreshPinpointUser";
$at.CLK_ALARM_FILTER_PINPOINT_USER = "ClickAlarmFilterPinpointUser";
$at.CLK_ALARM_CREATE_RULE = "ClickAlarmCreateUserGroup";
$at.CLK_ALARM_REFRESH_RULE = "ClickAlarmRefreshUserGroup";
$at.CLK_ALARM_FILTER_RULE = "ClickAlarmFilterUserGroup";
$at.TG_DATE = "ToggleDate";
$at.TG_UPDATE_ON = "ToggleUpdateOn";
$at.TG_NODE_VIEW = "ToggleNodeView";
$at.TG_SCATTER_SUCCESS = "ToggleScatterSuccess";
$at.TG_SCATTER_FAILED = "ToggleScatterFailed";
$at.TG_MERGE_TYPE = "ToggleMergeType";
$at.TG_CALL_COUNT = "ToggleCallCount";
$at.TG_TPS = "ToggleTPS";
$at.TG_ROUTING = "ToggleRouting";
$at.TG_CURVE = "ToggleCurve";
$at.ST_ = "Sort";
$at.ASCENDING = "ascending";
$at.DESCENDING = "descending";
$at.ON = "on";
$at.OFF = "off";
$at.MAIN_PAGE = "/main.page";
$at.FILTEREDMAP_PAGE = "/filteredMap.page";
$at.INSPECTOR_PAGE = "/inspector.page";
$at.SCATTER_FULL_SCREEN_PAGE = "/scatterFullScreen.page";
$at.TRANSACTION_DETAIL_PAGE = "/transactionDetail.page";
$at.TRANSACTION_LIST_PAGE = "/transactionList.page";
$at.TRANSACTION_VIEW_PAGE = "/transactionView.page";
global.$at = $at;
$.ajax({
url: "/configuration.pinpoint"
}).done(function( result ) {
bSendAllowed = result.sendUsage;
}).fail(function() {
});
})(window, jQuery);
+6 -1
View File
@@ -201,7 +201,12 @@
background-color: #EFABAB;
color: #000;
}
#pinpoint-configuration .some-list-content .wrapper .empty-list {
text-align: center;
margin-top: 50%;
color: #AAA;
font-size: 22px;
}
#pinpoint-configuration .some-list-content.move-some-where li span {
margin-left: 4px;
}