"YANGMAN_IS_AUGMENT": "Augments",
"YANGMAN_LOADING_MODULES": "Loading application modules...",
"YANGMAN_EXECUTING_REQUEST": "Request is beeing executed...",
- "YANGMAN_CM_FONT_SIZE_HINT": "Use \"Alt +\" key and \"Alt -\" key in editor to enlarge or reduce json font size",
- "YANGMAN_CM_HINT_DONT_SHOW": "Got it"
+ "YANGMAN_CM_ENLARGE_FONT_SIZE": "Enlarge json font size (Alt +)",
+ "YANGMAN_CM_REDUCE_FONT_SIZE": "Reduce json font size (Alt -)"
}
RequestDataCtrl.$inject = ['$filter', '$mdToast', '$scope', 'RequestsService'];
function RequestDataCtrl($filter, $mdToast, $scope, RequestsService) {
- var requestData = this;
+ var requestData = this,
+ cmData = {
+ cmInstance: null,
+ cmFontSize: 14,
+ };
requestData.paramsArray = [];
requestData.data = '';
requestData.type = null;
+
+ // todo: move all cm staff to directive
requestData.dataEditorOptions = {
mode: 'javascript',
lineNumbers: true,
},
onLoad: function (cmInstance) {
+ cmData.cmInstance = cmInstance;
+
cmInstance.data = {
parameterListObj: $scope.parametersList,
- codeFontSize: 14,
};
- angular.element(cmInstance.display.wrapper).css('fontSize', cmInstance.data.codeFontSize + 'px');
+ angular.element(cmInstance.display.wrapper).css('fontSize', cmData.cmFontSize + 'px');
cmInstance.on('changes', function () {
if (angular.isFunction(cmInstance.showHint)) {
if (event.altKey) {
switch (event.key){
case '+':
- if (cmInstance.data.codeFontSize < 30) {
- cmInstance.data.codeFontSize++;
- }
+ incCMFontSize();
angular.element(cmInstance.display.wrapper).css(
'fontSize',
- cmInstance.data.codeFontSize + 'px'
+ cmData.cmFontSize + 'px'
);
break;
case '-':
- if (cmInstance.data.codeFontSize > 5) {
- cmInstance.data.codeFontSize--;
- }
+ decCMFontSize();
angular.element(cmInstance.display.wrapper).css(
'fontSize',
- cmInstance.data.codeFontSize + 'px'
+ cmData.cmFontSize + 'px'
);
break;
}
// methods
requestData.init = init;
- requestData.showCMHint = showCMHint;
+ requestData.enlargeCMFont = enlargeCMFont;
+ requestData.reduceCMFont = reduceCMFont;
+
+ function incCMFontSize() {
+ if (cmData.cmFontSize < 30) {
+ cmData.cmFontSize++;
+ }
+ }
+
+ function decCMFontSize() {
+ if (cmData.cmFontSize > 5) {
+ cmData.cmFontSize--;
+ }
+ }
+
+ function enlargeCMFont() {
+ incCMFontSize();
+ angular.element(cmData.cmInstance.display.wrapper).css(
+ 'fontSize',
+ cmData.cmFontSize + 'px'
+ );
+ }
+
+ function reduceCMFont() {
+ decCMFontSize();
+ angular.element(cmData.cmInstance.display.wrapper).css(
+ 'fontSize',
+ cmData.cmFontSize + 'px'
+ );
+ }
/**
* Set code mirror theme and readonly property considering requestData.type
}
- /**
- * Show hints for first codemirror instancesk
- */
- function showCMHint(type) {
-
- if (!localStorage.getItem('yangman_cm_hint_got_it')){
-
- $mdToast.show(
- $mdToast.simple()
- .textContent($filter('translate')('YANGMAN_CM_FONT_SIZE_HINT'))
- .action($filter('translate')('YANGMAN_CM_HINT_DONT_SHOW'))
- .position('top right')
- .parent(angular.element('.yangmanModule__right-panel__req-data__cm-' + type))
- .hideDelay(10000)
- ).then(function (response){
- if (response === 'ok') {
- localStorage.setItem('yangman_cm_hint_got_it', 1);
- }
- });
- }
- }
-
/**
* Initialization
* @param type
requestData.type = type;
initEditorOptions();
- showCMHint(type);
-
$scope.$on('YANGMAN_SET_CODEMIRROR_DATA_' + type, function (event, args){
requestData.data = args.params.data;
- showCMHint(type);
});
$scope.$on('YANGMAN_GET_CODEMIRROR_DATA_' + type, function (event, args){
}
}
- $scope.rootBroadcast('YANGMAN_SAVE_EXECUTED_REQUEST', historyReq);
+ $scope.rootBroadcast('YANGMAN_SAVE_EXECUTED_REQUEST', historyReq, function (){
+ $scope.rootBroadcast('YANGMAN_SELECT_THE_NEWEST_REQUEST');
+ });
(executeCbk || angular.noop)(historyReq);
reqInfo.statusText,
reqInfo.time
);
- $scope.rootBroadcast('YANGMAN_SAVE_EXECUTED_REQUEST', historyReq);
+ $scope.rootBroadcast('YANGMAN_SAVE_EXECUTED_REQUEST', historyReq, function (){
+ $scope.rootBroadcast('YANGMAN_SELECT_THE_NEWEST_REQUEST');
+ });
+
+
//setNodeDataFromRequestData(requestHeader.requestUrl);
* @param params
*/
function saveBcstedHistoryRequest(broadcastEvent, params) {
- console.debug('params.params', params.params);
vm.requestList.addRequestToList(params.params);
vm.requestList.groupListByDate();
vm.requestList.saveToStorage();
loadHistoryRequests();
+
+ (params.cbk || angular.noop)();
}
/**
refreshCollections();
}
+
+ function selectNewestRequest() {
+ vm.mainList.toggleReqSelection(true, vm.mainList.getNewestRequest());
+ }
+
/**
*
* @param list collectionList or requestList object
$scope.$on('YANGMAN_SAVE_EXECUTED_REQUEST', saveBcstedHistoryRequest);
// saving from request header
$scope.$on('YANGMAN_SAVE_REQUEST_TO_COLLECTION', saveRequestFromExt);
+ // select newest request
+ $scope.$on('YANGMAN_SELECT_THE_NEWEST_REQUEST', selectNewestRequest);
+
} else {
// saving collections expanded status on refresh
$scope.$on('YANGMAN_REFRESH_AND_EXPAND_COLLECTIONS', function(event, params){
* @param ParsingJsonService
* @param RequestsService
*/
- function HistoryListModel(ParsingJsonService, RequestsService){
+ function HistoryListModel($filter, ParsingJsonService, RequestsService){
BaseListModel.call(this, ParsingJsonService);
self.groupListByDate = groupListByDate;
self.selectReqs = selectReqs;
self.toggleReqSelection = toggleReqSelection;
+ self.getNewestRequest = getNewestRequest;
+
+ /**
+ * Get request with max timestamp (was executed as the last)
+ */
+ function getNewestRequest() {
+ return $filter('orderBy')(self.list, '-timestamp')[0];
+ }
/**
* Mark reqObj as selected
angular.module('app.yangman').service('RequestsService', RequestsService);
- RequestsService.$inject = ['PathUtilsService', 'ParametersService', 'ParsingJsonService', 'YangUtilsService'];
+ RequestsService.$inject = ['$filter', 'PathUtilsService', 'ParametersService', 'ParsingJsonService', 'YangUtilsService'];
- function RequestsService(PathUtilsService, ParametersService, ParsingJsonService, YangUtilsService){
+ function RequestsService($filter, PathUtilsService, ParametersService, ParsingJsonService, YangUtilsService){
var service = {};
* @returns {*}
*/
function createEmptyHistoryList(name){
- var result = new HistoryListModel(ParsingJsonService, service);
+ var result = new HistoryListModel($filter, ParsingJsonService, service);
result.setName(name);
return result;
}
<!-- Sent data -->
<div ng-controller="RequestDataCtrl as requestData"
+ layout="column"
ng-show="main.jsonView.sent"
ng-init="requestData.init('SENT')"
ng-class="{'half-size': main.jsonView.received && main.jsonView.sent}"
class="yangmanModule__right-panel__req-data__cm-SENT ym-resizable-s">
- <h5>{{'YANGMAN_SENT_DATA' | translate}}</h5>
+ <section class="yangmanModule__right-panel__req-data__header" layout="row">
+ <h5 flex>{{'YANGMAN_SENT_DATA' | translate}}</h5>
+ <md-button ng-click="requestData.enlargeCMFont()">
+ <i class="material-icons bigger">text_format</i>
+ <i class="material-icons additional">arrow_drop_up</i>
+ <md-tooltip>
+ {{ 'YANGMAN_CM_ENLARGE_FONT_SIZE' | translate }}
+ </md-tooltip>
+ </md-button>
+ <md-button ng-click="requestData.reduceCMFont()">
+ <i class="material-icons smaller">text_format</i>
+ <i class="material-icons additional">arrow_drop_down</i>
+ <md-tooltip md-direction="bottom right">
+ {{ 'YANGMAN_CM_REDUCE_FONT_SIZE' | translate }}
+ </md-tooltip>
+ </md-button>
+ </section>
<div md-whiteframe="2" ng-include src="globalViewPath + 'rightpanel/request-data.tpl.html'"></div>
</div>
ng-class="{'half-size': main.jsonView.received && main.jsonView.sent}"
class="yangmanModule__right-panel__req-data__cm-RECEIVED ym-resizable-s">
- <h5>{{'YANGMAN_RECEIVED_DATA' | translate}}</h5>
+ <section class="yangmanModule__right-panel__req-data__header" layout="row">
+ <h5 flex>{{'YANGMAN_RECEIVED_DATA' | translate}}</h5>
+ <md-button ng-click="requestData.enlargeCMFont()">
+ <i class="material-icons bigger">text_format</i>
+ <i class="material-icons additional">arrow_drop_up</i>
+ <md-tooltip>
+ {{ 'YANGMAN_CM_ENLARGE_FONT_SIZE' | translate }}
+ </md-tooltip>
+ </md-button>
+ <md-button ng-click="requestData.reduceCMFont()">
+ <i class="material-icons smaller">text_format</i>
+ <i class="material-icons additional">arrow_drop_down</i>
+ <md-tooltip md-direction="bottom right">
+ {{ 'YANGMAN_CM_REDUCE_FONT_SIZE' | translate }}
+ </md-tooltip>
+ </md-button>
+ </section>
<div md-whiteframe="2" ng-include src="globalViewPath + 'rightpanel/request-data.tpl.html'"></div>
</div>
</section>
&__req-data{
+ &__header{
+
+ h5{
+ padding-top: 10px;
+ }
+
+ button{
+ margin: 0;
+ margin-bottom: 2px;
+ min-width: 0!important;
+ width: 46px;
+
+ .material-icons{
+ margin-bottom: 6px;
+ vertical-align: bottom;
+ }
+
+ .bigger{
+ font-size: 25px;
+ }
+
+ .smaller{
+ font-size: 18px;
+ }
+
+ .additional{
+ margin-left: -15px;
+ vertical-align: top;
+ }
+ }
+ }
+
> div{
height: 100%;
padding-right: 2px;