blob: c1dac18ee1cf573f06d6641350761fbbc5d660c2 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
App.widgetMapper = App.QuickDataMapper.create({
model: App.Widget,
config: {
id: 'id',
layout_id: 'layout_id',
widget_name: 'widget_name',
default_order: 'default_order',
widget_type: 'widget_type',
service_name: 'service_name',
section_name: 'section_name',
time_created: 'time_created',
author: 'author',
properties: 'properties',
metrics: 'metrics',
values: 'values',
description: 'description',
scope: 'scope',
tag: 'tag'
},
map: function (json) {
if (!this.get('model')) return;
if (json.widgets) {
var result = [];
json.widgets.forEach(function (item, index) {
item.WidgetInfo.section_name = json.section_name;
item.WidgetInfo.layout_id = json.id;
item.WidgetInfo.metrics = JSON.parse(item.WidgetInfo.metrics);
item.WidgetInfo.properties = JSON.parse(item.WidgetInfo.properties);
item.WidgetInfo.values = JSON.parse(item.WidgetInfo.values);
item.WidgetInfo.default_order = (index + 1);
result.push(this.parseIt(item.WidgetInfo, this.config));
}, this);
App.store.safeLoadMany(this.get('model'), result);
}
}
});