Skip to content
This repository was archived by the owner on May 10, 2024. It is now read-only.

Commit f19f81e

Browse files
jcenturionjcenturion
authored andcommitted
WIP - New design
1 parent 9add567 commit f19f81e

File tree

77 files changed

+76448
-81506
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+76448
-81506
lines changed

.jshintrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"should": false,
4848
"sinon": false,
4949
"xdescribe": false,
50-
"xit": false
50+
"xit": false,
51+
"Firebase": false
5152
}
5253
}

Gruntfile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ module.exports = function (grunt) {
8686

8787
connect: {
8888
options: {
89-
hostname: 'localhost',
89+
hostname: '0.0.0.0',
9090
port: grunt.option('port') || 9013
9191
},
9292

app/index.html

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@
99

1010
<!-- build:css({.,.tmp,app}) styles/api-designer-vendor.css -->
1111
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css">
12-
13-
<link rel="stylesheet" href="vendor/styles/codemirror.css">
12+
<!-- <link rel="stylesheet" href="vendor/styles/codemirror.css"> -->
13+
<link rel="stylesheet" href="bower_components/codemirror/lib/codemirror.css">
1414
<link rel="stylesheet" href="vendor/styles/solarized.css">
1515
<link rel="stylesheet" href="vendor/styles/show-hint.css">
16-
16+
<link rel="stylesheet" href="bower_components/angular-hotkeys/build/hotkeys.css">
1717
<link rel="stylesheet" href="bower_components/angular-ui-tree/dist/angular-ui-tree.min.css">
1818

19-
<link rel="stylesheet" href="bower_components/api-console/dist/styles/api-console-light-theme.css">
19+
<!--API Console-->
20+
<link rel="stylesheet" href="bower_components/api-console/dist/styles/api-console-dark-theme.css">
21+
<!--API Console-->
2022
<!-- endbuild -->
2123

2224
<!-- build:css({.,.tmp,app}) styles/api-designer.css -->
@@ -27,9 +29,15 @@
2729
<link rel="stylesheet" href="styles/file-browser.css">
2830
<link rel="stylesheet" href="styles/code-mirror-overrides.css">
2931
<link rel="stylesheet" href="styles/api-console-overrides.css">
30-
<link rel="stylesheet" href="styles/font-awesome-overrides.css">
3132
<link rel="stylesheet" href="styles/modal.css">
3233
<link rel="stylesheet" href="styles/menubar.css">
34+
<link rel="stylesheet" href="styles/omnisearch.css">
35+
<link rel="stylesheet" href="styles/bottom-bar.css">
36+
<link rel="stylesheet" href="styles/try-it.css">
37+
<link rel="stylesheet" href="styles/resource-list.css">
38+
<link rel="stylesheet" href="styles/breadcrumb.css">
39+
<link rel="stylesheet" href="styles/editor-design.css">
40+
<link rel="stylesheet" href="styles/hotkeys-overrides.css">
3341
<!-- endbuild -->
3442
</head>
3543
<body ng-app="ramlEditorApp">
@@ -43,11 +51,11 @@
4351
which isn't enough for API Console to work properly
4452
-->
4553
<script src="bower_components/jquery/dist/jquery.js"></script>
46-
<script src="bower_components/velocity/velocity.js"></script>
4754

4855
<script src="bower_components/angular/angular.js"></script>
49-
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
56+
<script src="vendor/scripts/ui-bootstrap-tpls.js"></script>
5057
<script src="bower_components/angular-ui-tree/dist/angular-ui-tree.js"></script>
58+
<script src="bower_components/angular-hotkeys/build/hotkeys.js"></script>
5159
<script src="bower_components/es5-shim/es5-shim.js"></script>
5260

5361
<script src="bower_components/raml-js-parser/dist/raml-parser.js"></script>
@@ -59,39 +67,43 @@
5967
<script src="bower_components/jszip/jszip-deflate.js"></script>
6068
<script src="bower_components/jszip/jszip-inflate.js"></script>
6169

62-
<script src="bower_components/marked/lib/marked.js"></script>
63-
<script src="bower_components/highlightjs/highlight.pack.js"></script>
64-
<script src="bower_components/vkbeautify/vkbeautify.js"></script>
65-
<script src="bower_components/crypto-js/rollups/hmac-sha1.js"></script>
66-
<script src="bower_components/crypto-js/components/enc-base64.js"></script>
6770
<script src="bower_components/codemirror/lib/codemirror.js"></script>
6871
<script src="bower_components/codemirror/mode/javascript/javascript.js"></script>
6972
<script src="bower_components/codemirror/mode/xml/xml.js"></script>
7073
<script src="bower_components/codemirror/mode/yaml/yaml.js"></script>
71-
<script src="bower_components/codemirror/addon/dialog/dialog.js"></script>
72-
<script src="bower_components/codemirror/addon/search/search.js"></script>
74+
<script src="bower_components/codemirror/mode/markdown/markdown.js"></script>
75+
<script src="bower_components/codemirror/mode/gfm/gfm.js"></script>
76+
77+
<script src="bower_components/codemirror/addon/selection/active-line.js"></script>
7378
<script src="bower_components/codemirror/addon/search/searchcursor.js"></script>
7479
<script src="bower_components/codemirror/addon/lint/lint.js"></script>
75-
<script src="bower_components/angular-ui-codemirror/ui-codemirror.js"></script>
76-
<script src="bower_components/angular-marked/angular-marked.js"></script>
77-
<script src="bower_components/angular-highlightjs/angular-highlightjs.js"></script>
78-
<script src="bower_components/slug/slug.js"></script>
80+
7981
<script src="bower_components/FileSaver/FileSaver.js"></script>
82+
<script src="bower_components/file-saver.js/FileSaver.js"></script>
83+
84+
<!--API Console-->
85+
<script src="bower_components/highlightjs/highlight.pack.js"></script>
86+
<script src="bower_components/crypto-js/rollups/hmac-sha1.js"></script>
87+
<script src="bower_components/crypto-js/components/enc-base64.js"></script>
88+
<script src="bower_components/marked/lib/marked.js"></script>
8089
<script src="bower_components/raml-client-generator/dist/raml-client-generator.js"></script>
90+
<script src="bower_components/slug/slug.js"></script>
91+
<script src="bower_components/velocity/velocity.js"></script>
92+
<script src="bower_components/vkbeautify/vkbeautify.js"></script>
93+
<script src="bower_components/angular-ui-codemirror/ui-codemirror.js"></script>
94+
<script src="bower_components/angular-highlightjs/angular-highlightjs.js"></script>
95+
<script src="bower_components/angular-marked/angular-marked.js"></script>
96+
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
8197
<script src="bower_components/api-console/dist/scripts/api-console.js"></script>
82-
<script src="bower_components/file-saver.js/FileSaver.js"></script>
98+
<!--API Console-->
8399
<!-- endbuild -->
84100

85101
<!-- build:js({.,.tmp,app}) scripts/api-designer.js -->
86-
<script src="vendor/scripts/codemirror.js"></script>
87102
<script src="vendor/scripts/foldcode.js"></script>
88103
<script src="vendor/scripts/foldgutter.js"></script>
89-
<script src="vendor/scripts/gfm.js"></script>
90-
<script src="vendor/scripts/javascript.js"></script>
91-
<script src="vendor/scripts/markdown.js"></script>
92104
<script src="vendor/scripts/overlay.js"></script>
93105
<script src="vendor/scripts/show-hint.js"></script>
94-
<script src="vendor/scripts/xml.js"></script>
106+
<script src="vendor/scripts/keymap.js"></script>
95107

96108
<script src="scripts/app.js"></script>
97109
<script src="scripts/services/utils.js"></script>
@@ -118,9 +130,11 @@
118130
<script src="scripts/services/swagger-to-raml.js"></script>
119131
<script src="scripts/services/import-service.js"></script>
120132
<script src="scripts/services/import-service-conflict-modal.js"></script>
133+
<script src="scripts/services/event-emitter.js"></script>
134+
<script src="scripts/services/raml-editor-context.js"></script>
121135
<script src="scripts/filters/string-filters.js"></script>
122136
<script src="scripts/controllers/raml-editor-main.js"></script>
123-
<script src="scripts/controllers/raml-editor-shelf.js"></script>
137+
<!--<script src="scripts/controllers/raml-editor-shelf.js"></script>-->
124138
<script src="scripts/controllers/notifications.js"></script>
125139
<script src="scripts/controllers/mocking-service-controller.js"></script>
126140
<script src="scripts/directives/splitter.js"></script>
@@ -136,7 +150,16 @@
136150
<script src="scripts/directives/raml-editor-new-file-button.js"></script>
137151
<script src="scripts/directives/raml-editor-export-files-button.js"></script>
138152
<script src="scripts/directives/raml-editor-import-button.js"></script>
153+
<script src="scripts/directives/raml-editor-omnisearch.js"></script>
154+
<script src="scripts/directives/raml-editor-bottom-bar.js"></script>
155+
<script src="scripts/directives/raml-editor-try-it.js"></script>
156+
<script src="scripts/directives/raml-editor-resource-list.js"></script>
157+
<script src="scripts/directives/raml-editor-breadcrumb.js"></script>
158+
<script src="scripts/directives/raml-editor-design.js"></script>
139159
<script src="scripts/directives/ui-tree-node.js"></script>
140160
<!-- endbuild -->
161+
162+
<!-- build:js({.,.tmp,app}) scripts/api-designer.js -->
163+
<!-- endbuild -->
141164
</body>
142165
</html>

app/scripts/app.js

Lines changed: 123 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,28 @@
11
(function () {
22
'use strict';
33

4+
if (typeof String.prototype.startsWith !== 'function') {
5+
String.prototype.startsWith = function (str){
6+
return this.slice(0, str.length) === str;
7+
};
8+
}
9+
10+
(function () {
11+
angular.module('raml', [])
12+
.factory('ramlParser', function () {
13+
return RAML.Parser;
14+
});
15+
16+
RAML.Settings = RAML.Settings || {};
17+
})();
18+
419
angular.module('ramlEditorApp', [
520
// angular-ui
621
'ui.bootstrap.modal',
722
'ui.bootstrap.tpls',
823
'ui.tree',
9-
1024
// console
1125
'ramlConsoleApp',
12-
1326
// project
1427
'codeMirror',
1528
'fs',
@@ -21,11 +34,116 @@
2134
'validate',
2235
'autoFocus',
2336
'rightClick',
24-
'dragAndDrop'
37+
'dragAndDrop',
38+
'cfp.hotkeys'
2539
])
26-
.run(function ($window) {
40+
.run(function ($window, hotkeys) {
2741
// Adding proxy settings for api console
28-
$window.RAML.Settings.proxy = '/proxy/';
42+
$window.RAML.Settings.proxy = '/proxy/';
43+
44+
hotkeys.add({
45+
combo: 'mod+S',
46+
description: 'Save current file'
47+
});
48+
hotkeys.add({
49+
combo: 'shift+mod+S',
50+
description: 'Save All'
51+
});
52+
hotkeys.add({
53+
combo: 'mod+E',
54+
description: 'Extract to'
55+
});
56+
hotkeys.add({
57+
combo: 'mod + p',
58+
description: 'Show global search'
59+
});
60+
hotkeys.add({
61+
combo: 'Ctrl+Space',
62+
description: 'Start autocomplete'
63+
});
64+
hotkeys.add({
65+
combo: 'mod+/',
66+
description: 'Toggle Comment'
67+
});
68+
hotkeys.add({
69+
combo: 'shift+mod+A',
70+
description: 'Select Resource'
71+
});
72+
hotkeys.add({
73+
combo: 'mod+Ctrl+down',
74+
description: 'Swap line down'
75+
});
76+
hotkeys.add({
77+
combo: 'mod+Ctrl+up',
78+
description: 'Swap line up'
79+
});
80+
hotkeys.add({
81+
combo: 'mod+D',
82+
description: 'Select next occurrence'
83+
});
84+
hotkeys.add({
85+
combo: 'mod+K mod+K',
86+
description: 'Delete line right'
87+
});
88+
hotkeys.add({
89+
combo: 'mod+K mod+L',
90+
description: 'Down case at cursor'
91+
});
92+
hotkeys.add({
93+
combo: 'mod+K mod+U',
94+
description: 'Up case at cursor'
95+
});
96+
hotkeys.add({
97+
combo: 'mod+L',
98+
description: 'Select line'
99+
});
100+
// hotkeys.add({
101+
// combo: 'shift+Alt+down',
102+
// description: 'Select lines downward'
103+
// });
104+
// hotkeys.add({
105+
// combo: 'shift+Alt+up',
106+
// description: 'Select lines upward'
107+
// });
108+
hotkeys.add({
109+
combo: 'shift+mod+D',
110+
description: 'Duplicate line'
111+
});
112+
// hotkeys.add({
113+
// combo: 'shift + Ctrl + T',
114+
// description: 'toggleTheme'
115+
// });
116+
hotkeys.add({
117+
combo: 'shift+Tab',
118+
description: 'Indent less'
119+
});
120+
121+
hotkeys.del('?');
122+
})
123+
.config(function(hotkeysProvider) {
124+
hotkeysProvider.templateTitle = 'Keyboard Shortcuts';
125+
126+
var template = [
127+
'<div class="cfp-container" ng-class="{in: helpVisible}" style="display: none;">',
128+
' <h4 class="cfp-hotkeys-title" ng-if="!header">{{ title }}</h4>',
129+
' <div ng-bind-html="header" ng-if="header"></div>',
130+
' <div>',
131+
' <table>',
132+
' <tbody>',
133+
' <tr ng-repeat="hotkey in hotkeys | filter:{ description: \'!$$undefined$$\' }">',
134+
' <td class="cfp-hotkeys-keys">',
135+
' <span ng-repeat="key in hotkey.format() track by $index" class="cfp-hotkeys-key">{{ key }}</span>',
136+
' </td>',
137+
' <td class="cfp-hotkeys-text">{{ hotkey.description }}</td>',
138+
' </tr>',
139+
' </tbody>',
140+
' </table>',
141+
' </div>',
142+
'</div>',
143+
'<div class="cfp-overlay" ng-class="{in: helpVisible}" style="display: none;"></div>'
144+
];
145+
146+
hotkeysProvider.template = template.join('\n');
29147
})
30148
;
31149
})();

app/scripts/controllers/mocking-service-controller.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
) {
1010
function addBaseUri() {
1111
function setLine(lineNumber, line, prefix) {
12-
$scope.editor.setLine(lineNumber, (prefix || '') + $scope.editor.getLine(lineNumber) + '\n' + line);
12+
var from = {line: lineNumber, ch: 0};
13+
var to = {line: lineNumber, ch: $scope.editor.getLine(lineNumber).length};
14+
15+
$scope.editor.replaceRange((prefix || '') + $scope.editor.getLine(lineNumber) + '\n' + line, from, to);
1316
}
1417

1518
var baseUri = 'baseUri: ' + $scope.mock.baseUri;
@@ -41,14 +44,18 @@
4144
var baseUriLine = 'baseUri: ' + $scope.mock.baseUri;
4245
var lineNumber = void(0);
4346
var line = void(0);
47+
var from, to;
4448

4549
// trying to find mocked baseUri
4650
// and remove it
4751
for (lineNumber = 0; lineNumber < $scope.editor.lineCount(); lineNumber++) {
4852
line = $scope.editor.getLine(lineNumber).trim();
4953

5054
if (line === baseUriLine) {
51-
$scope.editor.removeLine(lineNumber);
55+
from = {line: lineNumber, ch: 0};
56+
to = {line: lineNumber, ch: $scope.editor.getLine(lineNumber).length};
57+
58+
$scope.editor.replaceRange('', from, to);
5259
break;
5360
}
5461
}
@@ -59,7 +66,9 @@
5966
line = $scope.editor.getLine(lineNumber).trim();
6067

6168
if (line.indexOf('#') === 0 && line.slice(1).trim().indexOf('baseUri: ') === 0) {
62-
$scope.editor.setLine(lineNumber, line.slice(1).trim());
69+
from = {line: lineNumber, ch: 0};
70+
to = {line: lineNumber, ch: $scope.editor.getLine(lineNumber).length};
71+
$scope.editor.replaceRange(line.slice(1).trim(), from, to);
6372
break;
6473
}
6574
}

app/scripts/controllers/notifications.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
angular.module('ramlEditorApp')
55
.constant('NOTIFICATION_TIMEOUT', 3000)
6-
.controller('notifications', function (NOTIFICATION_TIMEOUT, $scope, $timeout) {
6+
.controller('notifications', function (NOTIFICATION_TIMEOUT, $scope, $timeout, eventEmitter) {
77
var notifications = [];
88
$scope.shouldDisplayNotifications = false;
99

@@ -28,7 +28,7 @@
2828
}
2929
}
3030

31-
$scope.$on('event:notification', function (e, args) {
31+
eventEmitter.subscribe('event:notification', function (args) {
3232
notifications.push(JSON.parse(JSON.stringify(args)));
3333
processNotifications();
3434
});

0 commit comments

Comments
 (0)