kms 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/kms/application/controllers/pages_controller.coffee.erb +1 -2
  3. data/app/assets/javascripts/templates/assets/index.html.slim +4 -12
  4. data/app/assets/javascripts/templates/help/scopes.html.slim +74 -0
  5. data/app/assets/javascripts/templates/pages/index.html.slim +4 -3
  6. data/app/assets/javascripts/templates/snippets/index.html.slim +4 -3
  7. data/app/assets/javascripts/templates/templates/index.html.slim +4 -3
  8. data/app/assets/javascripts/templates/users/index.html.slim +3 -2
  9. data/app/assets/stylesheets/kms/custom.css.scss +3 -0
  10. data/app/controllers/kms/pages_controller.rb +2 -2
  11. data/app/models/ability.rb +0 -1
  12. data/app/models/concerns/kms/positioned.rb +18 -0
  13. data/app/models/kms/page.rb +2 -12
  14. data/app/services/kms/functions_registry.rb +11 -0
  15. data/app/uploaders/kms/asset_uploader.rb +1 -1
  16. data/config/initializers/help.rb +1 -1
  17. data/config/initializers/liquor.rb +0 -47
  18. data/config/locales/en.yml +22 -0
  19. data/config/locales/ru.yml +22 -0
  20. data/lib/generators/kms/install/install_generator.rb +2 -0
  21. data/lib/generators/kms/install/templates/carrierwave.rb +14 -0
  22. data/lib/kms/dependencies.rb +2 -0
  23. data/lib/kms/engine.rb +1 -1
  24. data/lib/kms/version.rb +1 -1
  25. data/spec/controllers/kms/snippets_controller_spec.rb +6 -6
  26. data/spec/internal/log/test.log +2439 -0
  27. data/spec/services/kms/functions_registry_spec.rb +14 -0
  28. data/spec/spec_helper.rb +1 -1
  29. data/vendor/assets/bower.json +1 -1
  30. data/vendor/assets/bower_components/angular-ui-tree/CHANGELOG.md +164 -0
  31. data/vendor/assets/bower_components/angular-ui-tree/CONTRIBUTING.md +39 -0
  32. data/vendor/assets/bower_components/angular-ui-tree/README.md +145 -37
  33. data/vendor/assets/bower_components/angular-ui-tree/bower.json +28 -18
  34. data/vendor/assets/bower_components/angular-ui-tree/{source → dist}/angular-ui-tree.css +18 -16
  35. data/vendor/assets/bower_components/angular-ui-tree/dist/angular-ui-tree.js +1408 -822
  36. data/vendor/assets/bower_components/angular-ui-tree/dist/angular-ui-tree.min.css +1 -2
  37. data/vendor/assets/bower_components/angular-ui-tree/dist/angular-ui-tree.min.js +3 -3
  38. data/vendor/assets/bower_components/angular-ui-tree/e2e/basic-example/basic-example.js +81 -0
  39. data/vendor/assets/bower_components/angular-ui-tree/e2e/basic-example/page.js +42 -0
  40. data/vendor/assets/bower_components/angular-ui-tree/e2e/table-example/page.js +31 -0
  41. data/vendor/assets/bower_components/angular-ui-tree/e2e/table-example/table-example.js +34 -0
  42. data/vendor/assets/bower_components/angular-ui-tree/index.js +2 -0
  43. data/vendor/assets/bower_components/angular-ui-tree/protractor.conf.js +19 -0
  44. data/vendor/assets/bower_components/angular/angular.js +4880 -2111
  45. data/vendor/assets/bower_components/angular/angular.min.js +320 -297
  46. data/vendor/assets/bower_components/angular/angular.min.js.gzip +0 -0
  47. data/vendor/assets/bower_components/angular/angular.min.js.map +3 -3
  48. data/vendor/assets/bower_components/angular/bower.json +1 -1
  49. data/vendor/assets/bower_components/angular/package.json +1 -1
  50. metadata +32 -40
  51. data/vendor/assets/bower_components/angular-ui-tree/Gruntfile.js +0 -229
  52. data/vendor/assets/bower_components/angular-ui-tree/build/compiler.jar +0 -0
  53. data/vendor/assets/bower_components/angular-ui-tree/demo/css/demo-horizontal.css +0 -47
  54. data/vendor/assets/bower_components/angular-ui-tree/demo/css/demo.css +0 -31
  55. data/vendor/assets/bower_components/angular-ui-tree/demo/css/tree.css +0 -25
  56. data/vendor/assets/bower_components/angular-ui-tree/demo/dist/angular-ui-tree.js +0 -1243
  57. data/vendor/assets/bower_components/angular-ui-tree/demo/dist/angular-ui-tree.min.css +0 -2
  58. data/vendor/assets/bower_components/angular-ui-tree/demo/dist/angular-ui-tree.min.js +0 -6
  59. data/vendor/assets/bower_components/angular-ui-tree/demo/filter.html +0 -64
  60. data/vendor/assets/bower_components/angular-ui-tree/demo/groups.html +0 -100
  61. data/vendor/assets/bower_components/angular-ui-tree/demo/index.html +0 -101
  62. data/vendor/assets/bower_components/angular-ui-tree/demo/js/demo.js +0 -63
  63. data/vendor/assets/bower_components/angular-ui-tree/demo/js/filter.js +0 -91
  64. data/vendor/assets/bower_components/angular-ui-tree/demo/js/groups.js +0 -143
  65. data/vendor/assets/bower_components/angular-ui-tree/demo/js/tree.js +0 -102
  66. data/vendor/assets/bower_components/angular-ui-tree/demo/js/trees.js +0 -60
  67. data/vendor/assets/bower_components/angular-ui-tree/demo/test.html +0 -60
  68. data/vendor/assets/bower_components/angular-ui-tree/demo/tree-horizontal.html +0 -66
  69. data/vendor/assets/bower_components/angular-ui-tree/demo/tree.html +0 -66
  70. data/vendor/assets/bower_components/angular-ui-tree/demo/trees.html +0 -92
  71. data/vendor/assets/bower_components/angular-ui-tree/guide/00_usage.ngdoc +0 -78
  72. data/vendor/assets/bower_components/angular-ui-tree/guide/01_development_setup.ngdoc +0 -58
  73. data/vendor/assets/bower_components/angular-ui-tree/guide/index.ngdoc +0 -33
  74. data/vendor/assets/bower_components/angular-ui-tree/karma.conf.js +0 -49
  75. data/vendor/assets/bower_components/angular-ui-tree/package.json +0 -40
  76. data/vendor/assets/bower_components/angular-ui-tree/source/angular-ui-tree.scss +0 -63
  77. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/handleCtrl.js +0 -16
  78. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/nodeCtrl.js +0 -141
  79. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/nodesCtrl.js +0 -100
  80. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/treeCtrl.js +0 -63
  81. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTree.js +0 -115
  82. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTreeHandle.js +0 -27
  83. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTreeNode.js +0 -427
  84. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTreeNodes.js +0 -59
  85. data/vendor/assets/bower_components/angular-ui-tree/source/main.js +0 -23
  86. data/vendor/assets/bower_components/angular-ui-tree/source/services/helper.js +0 -265
@@ -1,78 +0,0 @@
1
- @ngdoc overview
2
- @name Usage
3
- @description
4
-
5
- # Usage
6
-
7
- In this section we will give step-by-step instructions on how you get
8
- up and running with Angular-NestedSortable in just a few steps.
9
-
10
- ## 1. Download Angular-NestedSortable
11
-
12
- You can install the `Angular-NestedSortable` package very easily using Bower. After
13
- installing Bower on your machine, simply run:
14
-
15
- ```
16
- $ bower install Angular-NestedSortable
17
- ```
18
-
19
- ## 2. Include the sources
20
-
21
- Load the file `angular-nested-sortable.js` in your application.
22
-
23
- ````
24
- <script type="text/javascript" src="bower_components/angular-nested-sortable/angular-nested-sortable.js"></script>
25
- ````
26
-
27
- ## 3. Add dependency to your AngularJS application
28
-
29
- Add the sortable module as a dependency to your application module.
30
-
31
- ````
32
- var app = angular.module('MyApp', ['ui.nestedSortable'])
33
- ````
34
-
35
- ## 4. Setup the NestedSortable template
36
-
37
- You have all the freedom when creating the HTML for your NestedSortable tree component.
38
- It's up to you to choose the elements you want to use, you only need to include the Angular-NestedSortable controllers.
39
-
40
- ### Example 1
41
-
42
- Tree with one level nesting supports.
43
-
44
- ````
45
- <ol ui-nested-sortable="" ng-model="list">
46
- <li ng-repeat="item in list" ui-nested-sortable-item="">
47
- <div ui-nested-sortable-handle>
48
- {{item.title}}
49
- </div>
50
- <ol ui-nested-sortable="" ng-model="item.items">
51
- <li ng-repeat="subItem in item.items" ui-nested-sortable-item="">
52
- <div ui-nested-sortable-handle>
53
- {{subItem.title}}
54
- </div>
55
- </li>
56
- </ol>
57
- </li>
58
- </ol>
59
- ````
60
-
61
- ### Example 2
62
-
63
- Support unlimited nesting using a template for the menu items.
64
-
65
- ````
66
- <script type="text/ng-template" id="items_renderer.html">
67
- <div ui-nested-sortable-handle>
68
- {{item.title}}
69
- </div>
70
- <ol ui-nested-sortable="options" ng-model="item.items">
71
- <li ng-repeat="item in item.items" ui-nested-sortable-item="" ng-include="'items_renderer.html'"></li>
72
- </ol>
73
- </script>
74
-
75
- <ol ui-nested-sortable="options" ng-model="list" id="nested-sortable-root">
76
- <li ng-repeat="item in list" ui-nested-sortable-item="" ng-include="'items_renderer.html'"></li>
77
- </ol>
78
- ````
@@ -1,58 +0,0 @@
1
- @ngdoc overview
2
- @name Development setup
3
- @description
4
-
5
- # Development environment setup
6
-
7
- ## Prerequisites
8
-
9
- * [Node Package Manager](https://npmjs.org/) (NPM)
10
- * [Git](http://git-scm.com/)
11
-
12
- ## Dependencies
13
-
14
- * [Grunt](http://gruntjs.com/) (task automation)
15
- * [Bower](http://bower.io/) (package management)
16
-
17
- ## Installation
18
-
19
- Run the commands below in the project root directory.
20
-
21
- ###1. Install Grunt and Bower
22
-
23
- $ sudo npm install -g grunt-cli bower
24
-
25
- ###2. Install project dependencies
26
-
27
- $ npm install
28
- $ bower install
29
-
30
- ## Useful commands
31
-
32
- ### Running a local webserver
33
- To debug code and run end-to-end tests, it is often useful to have a local HTTP server. For this purpose, we have made available a local web server based on Node.js.
34
-
35
- To start the web server, run:
36
-
37
- $ grunt webserver
38
-
39
- To access the local server, enter the following URL into your web browser:
40
-
41
- http://localhost:8080/demo/
42
-
43
- By default, it serves the contents of the demo project.
44
-
45
-
46
- ### Build source
47
-
48
- To build Angular-NestedSortable, use the following command.
49
-
50
- $ grunt build
51
-
52
- This will generate a concatenated- and minified JavaScript file in the `dist` directory.
53
-
54
- ### Run tests
55
- You can run the tests once or choose to run them continuously.
56
-
57
- $ grunt test
58
- $ grunt test:continuous
@@ -1,33 +0,0 @@
1
- @ngdoc overview
2
- @name Guide
3
- @description
4
-
5
- # Angular NestedSortable
6
-
7
- <br>
8
- Angular NestedSortable is an AngularJS UI component that can sort nested lists,
9
- provides drag &amp; drop support and doesn't depend on jQuery.
10
-
11
- ## Features
12
-
13
- - Uses the native AngularJS scope for data binding
14
- - Sorted and move items through the entire tree
15
- - Prevent elements from accepting child nodes
16
-
17
- If you like the module and use it in your projects, make it public on
18
- [ngmodules](http://ngmodules.org/modules/Angular-NestedSortable) and click the "_I use it_" button!
19
-
20
- ## Browser support
21
-
22
- The Angular NestedSortable is tested with the following browsers:
23
-
24
- - Chrome (stable)
25
- - Firefox
26
- - IE 8, 9 and 10
27
-
28
- For IE8 support, make sure you do the following:
29
-
30
- - include an [ES5 shim](https://github.com/es-shims/es5-shim)
31
- - make your [AngularJS application compatible with Internet Explorer](http://docs.angularjs.org/guide/ie)
32
- - use [jQuery 1.x](http://jquery.com/browser-support/)
33
-
@@ -1,49 +0,0 @@
1
- module.exports = function(config) {
2
- 'use strict';
3
-
4
- var cfg = {
5
- bowerComponents: 'demo/bower_components'
6
- };
7
-
8
- config.set({
9
- basePath: '',
10
- frameworks: ['jasmine'],
11
-
12
- // files to load in the browser
13
- files: [
14
- // components
15
- cfg.bowerComponents + '/jquery/dist/jquery.js',
16
- cfg.bowerComponents + '/jasmine-jquery/lib/jasmine-jquery.js',
17
- cfg.bowerComponents + '/angular/angular.js',
18
- cfg.bowerComponents + '/angular-mocks/angular-mocks.js',
19
-
20
- // source files
21
- 'source/main.js',
22
- 'source/**/*.js',
23
-
24
- // tests
25
- 'tests/**/*.spec.js'
26
- ],
27
-
28
- // generate js files from html templates to expose them during testing
29
- preprocessors: {
30
- '**/*.html': 'ng-html2js'
31
- },
32
-
33
- // https://github.com/karma-runner/karma-ng-html2js-preprocessor#configuration
34
- ngHtml2JsPreprocessor: {
35
- // setting this option will create only a single module that contains templates
36
- // from all the files, so you can load them all with module('foo')
37
- },
38
-
39
- // files to exclude
40
- exclude: [],
41
-
42
- // level of logging
43
- // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
44
- logLevel: config.LOG_INFO,
45
-
46
- port: 9876,
47
- reporters: 'dots'
48
- });
49
- };
@@ -1,40 +0,0 @@
1
- {
2
- "name": "Angular-NestedSortable",
3
- "version": "2.1.5",
4
- "dependencies": {
5
- "grunt": "~0.4.2",
6
- "grunt-contrib-jshint": "~0.8.0",
7
- "load-grunt-tasks": "~0.2.1"
8
- },
9
- "devDependencies": {
10
- "bower": "~1.2.6",
11
- "jshint-stylish": "~0.1.5",
12
- "grunt-contrib-clean": "~0.5.0",
13
- "grunt-contrib-copy": "~0.4.1",
14
- "grunt-contrib-watch": "~0.5.3",
15
- "grunt-contrib-uglify": "~0.3.2",
16
- "grunt-closure-compiler": "~0.0.21",
17
- "grunt-contrib-concat": "~0.3.0",
18
- "grunt-open": "~0.2.3",
19
- "grunt-contrib-connect": "~0.6.0",
20
- "karma-script-launcher": "~0.1.0",
21
- "karma-chrome-launcher": "~0.1.2",
22
- "karma-firefox-launcher": "~0.1.3",
23
- "karma-ng-html2js-preprocessor": "~0.1.0",
24
- "grunt-html2js": "~0.2.4",
25
- "grunt-karma": "~0.6.2",
26
- "karma-phantomjs-launcher": "~0.1.2",
27
- "karma-html2js-preprocessor": "~0.1.0",
28
- "karma-jasmine": "~0.1.5",
29
- "karma-coffee-preprocessor": "~0.1.2",
30
- "requirejs": "~2.1.10",
31
- "karma-requirejs": "~0.2.1",
32
- "karma": "~0.10.9",
33
- "grunt-tasks-list": "~0.1.1",
34
- "grunt-ngdocs": "~0.2.1",
35
- "grunt-contrib-cssmin": "~0.9.0"
36
- },
37
- "engines": {
38
- "node": ">=0.8.0"
39
- }
40
- }
@@ -1,63 +0,0 @@
1
- .angular-ui-tree {
2
-
3
- }
4
-
5
- .angular-ui-tree-empty {
6
- border: 1px dashed #bbb;
7
- min-height: 100px;
8
- background-color: #e5e5e5;
9
- background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
10
- background-image: -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
11
- background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
12
- background-size: 60px 60px;
13
- background-position: 0 0, 30px 30px;
14
- }
15
-
16
- .angular-ui-tree-nodes {
17
- display: block;
18
- position: relative;
19
- margin: 0px;
20
- padding: 0px;
21
- list-style: none;
22
- }
23
-
24
- .angular-ui-tree-nodes .angular-ui-tree-nodes {
25
- padding-left: 20px;
26
- }
27
- .angular-ui-tree-node, .angular-ui-tree-placeholder {
28
- display: block;
29
- position: relative;
30
- margin: 0px;
31
- padding: 0px;
32
- min-height: 20px;
33
- line-height: 20px;
34
- }
35
-
36
- .angular-ui-tree-hidden {
37
- display: none;
38
- }
39
-
40
- .angular-ui-tree-placeholder {
41
- margin: 5px 0;
42
- padding: 0;
43
- min-height: 30px;
44
- }
45
-
46
- .angular-ui-tree-handle {
47
- cursor: move;
48
- text-decoration: none;
49
- font-weight: bold;
50
- -webkit-box-sizing: border-box;
51
- -moz-box-sizing: border-box;
52
- box-sizing: border-box;
53
- min-height: 20px;
54
- line-height: 20px;
55
- }
56
-
57
-
58
- .angular-ui-tree-drag {
59
- position: absolute;
60
- pointer-events: none;
61
- z-index: 999;
62
- opacity: .8;
63
- }
@@ -1,16 +0,0 @@
1
- (function () {
2
- 'use strict';
3
-
4
- angular.module('ui.tree')
5
-
6
- .controller('TreeHandleController', ['$scope', '$element', '$attrs', 'treeConfig',
7
- function ($scope, $element, $attrs, treeConfig) {
8
- this.scope = $scope;
9
-
10
- $scope.$element = $element;
11
- $scope.$nodeScope = null;
12
- $scope.$type = 'uiTreeHandle';
13
-
14
- }
15
- ]);
16
- })();
@@ -1,141 +0,0 @@
1
- (function () {
2
- 'use strict';
3
-
4
- angular.module('ui.tree')
5
-
6
- .controller('TreeNodeController', ['$scope', '$element', '$attrs', 'treeConfig',
7
- function ($scope, $element, $attrs, treeConfig) {
8
- this.scope = $scope;
9
-
10
- $scope.$element = $element;
11
- $scope.$modelValue = null; // Model value for node;
12
- $scope.$parentNodeScope = null; // uiTreeNode Scope of parent node;
13
- $scope.$childNodesScope = null; // uiTreeNodes Scope of child nodes.
14
- $scope.$parentNodesScope = null; // uiTreeNodes Scope of parent nodes.
15
- $scope.$treeScope = null; // uiTree scope
16
- $scope.$handleScope = null; // it's handle scope
17
- $scope.$type = 'uiTreeNode';
18
- $scope.$$apply = false; //
19
-
20
- $scope.collapsed = false;
21
-
22
- $scope.init = function(controllersArr) {
23
- var treeNodesCtrl = controllersArr[0];
24
- $scope.$treeScope = controllersArr[1] ? controllersArr[1].scope : null;
25
-
26
- // find the scope of it's parent node
27
- $scope.$parentNodeScope = treeNodesCtrl.scope.$nodeScope;
28
- // modelValue for current node
29
- $scope.$modelValue = treeNodesCtrl.scope.$modelValue[$scope.$index];
30
- $scope.$parentNodesScope = treeNodesCtrl.scope;
31
- treeNodesCtrl.scope.initSubNode($scope); // init sub nodes
32
-
33
- $element.on('$destroy', function() {
34
- treeNodesCtrl.scope.destroySubNode($scope); // destroy sub nodes
35
- });
36
- };
37
-
38
- $scope.index = function() {
39
- return $scope.$parentNodesScope.$modelValue.indexOf($scope.$modelValue);
40
- };
41
-
42
- $scope.dragEnabled = function() {
43
- return !($scope.$treeScope && !$scope.$treeScope.dragEnabled);
44
- };
45
-
46
- $scope.isSibling = function(targetNode) {
47
- return $scope.$parentNodesScope == targetNode.$parentNodesScope;
48
- };
49
-
50
- $scope.isChild = function(targetNode) {
51
- var nodes = $scope.childNodes();
52
- return nodes && nodes.indexOf(targetNode) > -1;
53
- };
54
-
55
- $scope.prev = function() {
56
- var index = $scope.index();
57
- if (index > 0) {
58
- return $scope.siblings()[index - 1];
59
- }
60
- return null;
61
- };
62
-
63
- $scope.siblings = function() {
64
- return $scope.$parentNodesScope.childNodes();
65
- };
66
-
67
- $scope.childNodesCount = function() {
68
- return $scope.childNodes() ? $scope.childNodes().length : 0;
69
- };
70
-
71
- $scope.hasChild = function() {
72
- return $scope.childNodesCount() > 0;
73
- };
74
-
75
- $scope.childNodes = function() {
76
- return $scope.$childNodesScope && $scope.$childNodesScope.$modelValue ?
77
- $scope.$childNodesScope.childNodes() :
78
- null;
79
- };
80
-
81
- $scope.accept = function(sourceNode, destIndex) {
82
- return $scope.$childNodesScope &&
83
- $scope.$childNodesScope.$modelValue &&
84
- $scope.$childNodesScope.accept(sourceNode, destIndex);
85
- };
86
-
87
- $scope.removeNode = function(){
88
- var node = $scope.remove();
89
- $scope.$callbacks.removed(node);
90
- return node;
91
- };
92
-
93
- $scope.remove = function() {
94
- return $scope.$parentNodesScope.removeNode($scope);
95
- };
96
-
97
- $scope.toggle = function() {
98
- $scope.collapsed = !$scope.collapsed;
99
- };
100
-
101
- $scope.collapse = function() {
102
- $scope.collapsed = true;
103
- };
104
-
105
- $scope.expand = function() {
106
- $scope.collapsed = false;
107
- };
108
-
109
- $scope.depth = function() {
110
- var parentNode = $scope.$parentNodeScope;
111
- if (parentNode) {
112
- return parentNode.depth() + 1;
113
- }
114
- return 1;
115
- };
116
-
117
- var subDepth = 0;
118
- var countSubDepth = function(scope) {
119
- var count = 0;
120
- var nodes = scope.childNodes();
121
- for (var i = 0; i < nodes.length; i++) {
122
- var childNodes = nodes[i].$childNodesScope;
123
- if (childNodes) {
124
- count = 1;
125
- countSubDepth(childNodes);
126
- }
127
- }
128
- subDepth += count;
129
- };
130
-
131
- $scope.maxSubDepth = function() {
132
- subDepth = 0;
133
- if ($scope.$childNodesScope) {
134
- countSubDepth($scope.$childNodesScope);
135
- }
136
- return subDepth;
137
- };
138
-
139
- }
140
- ]);
141
- })();