d598f0d0ed3fbaef420e88218fc2a5f0a837a610
[portal/sdk.git] /
1 /*
2  * Copyright (c) 2014 DataTorrent, Inc. ALL Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 'use strict';
18
19 app
20 .config(function ($routeProvider) {
21     $routeProvider
22       .when('/view', {
23         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/view.html',
24         controller: 'DemoCtrl',
25         title: 'simple',
26         description: 'This is the simplest demo.'
27       })
28       .when('/resize', {
29         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/view.html',
30         controller: 'ResizeDemoCtrl',
31         title: 'resize',
32         description: 'This demo showcases widget resizing.'
33       })
34       .when('/custom-settings', {
35         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/view.html',
36         controller: 'CustomSettingsDemoCtrl',
37         title: 'custom widget settings',
38         description: 'This demo showcases overriding the widget settings dialog/modal ' +
39           'for the entire dashboard and for a specific widget. Click on the cog of each ' +
40           'widget to see the custom modal. \n"configurable widget" has "limit" option in the modal ' +
41           'that controls RandomDataModel.'
42       })
43       .when('/explicit-saving', {
44         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/view.html',
45         controller: 'ExplicitSaveDemoCtrl',
46         title: 'explicit saving',
47         description: 'This demo showcases an option to only save the dashboard state '+
48           'explicitly, e.g. by user input. Notice the "all saved" button in the controls ' +
49           'updates as you make saveable changes.'
50       })
51       .when('/layouts', {
52         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/layouts.html',
53         controller: 'LayoutsDemoCtrl',
54         title: 'dashboard layouts',
55         description: 'This demo showcases the ability to have "dashboard layouts", ' +
56           'meaning the ability to have multiple arbitrary configurations of widgets. For more ' +
57           'information, take a look at [issue #31](https://github.com/DataTorrent/malhar-angular-dashboard/issues/31)'
58       })
59       .when('/', {
60         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/layouts.html',
61         controller: 'LayoutsDemoExplicitSaveCtrl',
62         title: 'layouts explicit saving',
63         description: 'This demo showcases dashboard layouts with explicit saving enabled.'
64       })
65       .otherwise({
66         redirectTo: '/'
67       });
68   })
69   .controller('NavBarCtrl', function($scope, $route) {
70     $scope.$route = $route;
71   })
72   .factory('widgetDefinitions', function(RandomDataModel) {
73     return [
74       {
75         name: 'random',
76         directive: 'wt-scope-watch',
77         attrs: {
78           value: 'randomValue'
79         }
80       },
81       {
82         name: 'time',
83         directive: 'wt-time'
84       },
85       {
86         name: 'datamodel',
87         directive: 'wt-scope-watch',
88         dataAttrName: 'value',
89         dataModelType: RandomDataModel
90       },
91       {
92         name: 'resizable',
93         templateUrl: 'app/fusion/scripts/view-models/reportdashboard-page/src/app/template/resizable.html',
94         attrs: {
95           class: 'demo-widget-resizable'
96         }
97       },
98       {
99         name: 'fluid',
100         directive: 'wt-fluid',
101         size: {
102           width: '50%',
103           height: '250px'
104         }
105       },
106       {
107           name: 'raptor-report-data',
108           directive: 'raptor-report-data',
109           size: {
110             width: '50%',
111             height: '300px'
112           }
113        },
114        {
115            name: 'raptor-report-chart',
116            directive: 'raptor-report-chart',
117            size: {
118              width: '50%',
119              height: '300px'
120            }
121         },
122        {
123           name: 'r-cloud',
124           directive: 'r-cloud',
125           size: {
126             width: '50%',
127             height: '300px'
128            }
129         }       
130     ];
131     
132   })
133   .value('defaultWidgets', [
134 //    { name: 'random' },
135 //    { name: 'time' },
136 //    { name: 'datamodel' },
137 //    {
138 //      name: 'random',
139 //      style: {
140 //        width: '50%',
141 //        minWidth: '39%'
142 //      }
143 //    },
144 //    {
145 //      name: 'time',
146 //      style: {
147 //        width: '50%'
148 //      }
149 //    }
150 //      {"name":"raptor-report","title":"Spam Source Line Chart","style":{},"size":{"height":"450px","width":"40%"},"attrs":{"value":"randomValue"},"report_id":"3360"}
151         
152   ])
153   .controller('DemoCtrl', function ($scope, $interval, $window, widgetDefinitions, defaultWidgets) {
154     
155     $scope.dashboardOptions = {
156       widgetButtons: true,
157       widgetDefinitions: widgetDefinitions,
158       defaultWidgets: defaultWidgets,
159       storage: $window.localStorage,
160       storageId: 'demo_simple'
161     };
162     $scope.randomValue = Math.random();
163     $interval(function () {
164       $scope.randomValue = Math.random();
165     }, 500);
166
167   });