| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- MWF.xApplication.query.Query.options.multitask = true;
- MWF.xApplication.query.Query.Main = new Class({
- Extends: MWF.xApplication.Common.Main,
- Implements: [Options, Events],
- options: {
- "style": "default",
- "name": "query.Query",
- "icon": "icon.png",
- "width": "1200",
- "height": "700",
- "title": MWF.xApplication.query.Query.LP.title,
- "isControl": false,
- "taskObject": null,
- "parameters": "",
- "readonly": false
- },
- onQueryLoad: function(){
- this.lp = MWF.xApplication.query.Query.LP;
- if (this.status){
- this.options.id = this.status.id;
- this.options.viewId = this.status.viewId;
- this.options.statId = this.status.statId;
- }
- },
- loadApplication: function(callback){
- this.content.setStyle("background-color", "#ffffff");
- this.node = new Element("div", {"styles": this.css.content}).inject(this.content);
- this.formNode = new Element("div", {"styles": {"min-height": "100%", "font-size": "14px"}}).inject(this.node);
- this.action = MWF.Actions.get("x_query_assemble_surface");
- // if (!this.options.isRefresh){
- // this.maxSize(function(){
- // this.loadQuery(this.options.parameters);
- // }.bind(this));
- // }else{
- this.loadQuery(this.options.parameters);
- // }
- if (callback) callback();
- },
- loadQuery: function(par){
- this.action.getQuery(this.options.id, function(json){
- this.query = json.data;
- this.setTitle(this.query.name);
- if (this.query.icon){
- if (this.taskitem){
- this.taskitem.iconNode.setStyles({
- "background-image": "url(data:image/png;base64,"+this.query.icon+")",
- "background-size": "24px 24px"
- });
- }
- }
- this.createLayout();
- this.createNavi();
- this.addEvent("resize", function(){
- if (this.currentItem){
- if (this.currentItem.viewer){
- this.currentItem.viewer.setContentHeight();
- }
- }
- }.bind(this));
- }.bind(this));
- },
- createLayout: function(){
- if (!layout.mobile){
- this.createLayoutPC();
- }else{
- this.createLayoutMobile();
- }
- },
- createLayoutPC: function(){
- this.naviNode = new Element("div", {"styles": this.css.naviNode}).inject(this.content);
- this.contentNode = new Element("div", {"styles": this.css.contentNode}).inject(this.content);
- this.naviTitleNode = new Element("div", {"styles": this.css.naviTitleNode}).inject(this.naviNode);
- this.naviContentNode = new Element("div", {"styles": this.css.naviContentNode}).inject(this.naviNode);
- this.naviViewTitleNode = new Element("div", {"styles": this.css.naviViewTitleNode, "text": this.lp.view}).inject(this.naviContentNode);
- this.naviViewContentNode = new Element("div", {"styles": this.css.naviViewContentNode}).inject(this.naviContentNode);
- this.naviStatTitleNode = new Element("div", {"styles": this.css.naviStatTitleNode, "text": this.lp.stat}).inject(this.naviContentNode);
- this.naviStatContentNode = new Element("div", {"styles": this.css.naviStatContentNode}).inject(this.naviContentNode);
- this.naviStatementTitleNode = new Element("div", {"styles": this.css.naviStatementTitleNode, "text": this.lp.statement}).inject(this.naviContentNode);
- this.naviStatementContentNode = new Element("div", {"styles": this.css.naviStatementContentNode}).inject(this.naviContentNode);
- this.setContentHeightFun = this.setContentHeight.bind(this);
- this.addEvent("resize", this.setContentHeightFun);
- this.setContentHeightFun();
- this.naviIconTitleNode = new Element("div", {"styles": this.css.naviIconTitleNode}).inject(this.naviTitleNode);
- if (this.query.icon){
- this.naviIconTitleNode.setStyles({
- "background-image": "url(data:image/png;base64,"+this.query.icon+")",
- });
- }
- this.naviRightTitleNode = new Element("div", {"styles": this.css.naviRightTitleNode}).inject(this.naviTitleNode);
- this.naviTextTitleNode = new Element("div", {"styles": this.css.naviTextTitleNode, "text": this.query.name}).inject(this.naviRightTitleNode);
- this.naviDescriptionTitleNode = new Element("div", {"styles": this.css.naviDescriptionTitleNode, "text": this.query.description || this.lp.noDescription}).inject(this.naviRightTitleNode);
- },
- createLayoutMobile: function(){},
- setContentHeight: function(){
- var size = this.content.getSize();
- var titleSize = this.naviTitleNode.getSize();
- var y = size.y-titleSize.y;
- this.naviContentNode.setStyle("height", ""+y+"px");
- },
- createNavi: function(){
- this.action.listView(this.options.id, function(json){
- if (json.data){
- json.data.each(function(view){
- if(view.display) {
- var item = this.createViewNaviItem(view);
- if( view.id === this.options.viewId ){
- item.selected()
- }
- }
- }.bind(this));
- }
- }.bind(this));
- MWF.Actions.get("x_query_assemble_surface").listStat(this.options.id, function(json){
- //this.action.listStat(this.options.id, function(json){
- if (json.data){
- json.data.each(function(stat){
- var item = this.createStatNaviItem(stat);
- if( stat.id === this.options.statId ){
- item.selected()
- }
- }.bind(this));
- }
- }.bind(this));
- MWF.Actions.load("x_query_assemble_surface").StatementAction.listWithQuery(this.options.id, {
- "justSelect" : true,
- "hasView" : true
- }, function(json){
- //this.action.listStat(this.options.id, function(json){
- if (json.data){
- json.data.each(function(statement){
- debugger;
- var item = this.createStatementNaviItem(statement);
- if( statement.id === this.options.statementId ){
- item.selected()
- }
- }.bind(this));
- }
- }.bind(this));
- },
- createViewNaviItem: function(view){
- var item = new MWF.xApplication.query.Query.ViewItem(view, this);
- return item;
- },
- createStatNaviItem: function(stat){
- var item = new MWF.xApplication.query.Query.StatItem(stat, this);
- return item;
- },
- createStatementNaviItem: function(statement){
- var item = new MWF.xApplication.query.Query.StatementItem(statement, this);
- return item;
- },
- recordStatus: function(){
- return {"id": this.options.id};
- }
- });
- MWF.xApplication.query.Query.ViewItem = new Class({
- initialize: function(view, app){
- this.view = view;
- this.app = app;
- this.css = this.app.css;
- this.lp = this.app.lp;
- this.isSelected = false;
- this.content = this.getContentNode();
- this.viewContent = this.getViewContentNode();
- this.load();
- },
- getContentNode: function(){
- return this.app.naviViewContentNode;
- },
- getViewContentNode: function(){
- return this.app.contentNode;
- },
- load: function(){
- this.node = new Element("div", {
- "styles": this.css.naviViewContentItemNode,
- "text": this.view.name,
- "title": this.view.name
- }).inject(this.content);
- this.node.addEvents({
- "mouseover": function(){if (!this.isSelected) this.node.setStyles(this.css.naviViewContentItemNode_over); }.bind(this),
- "mouseout": function(){if (!this.isSelected) this.node.setStyles(this.css.naviViewContentItemNode); }.bind(this),
- "click": function(){this.selected();}.bind(this)
- });
- },
- selected: function(){
- if (this.app.currentItem) this.app.currentItem.unselected();
- this.node.setStyles(this.css.naviViewContentItemNode_selected);
- this.app.currentItem = this;
- this.isSelected = true;
- this.loadView();
- },
- unselected: function(){
- this.node.setStyles(this.css.naviViewContentItemNode);
- this.app.currentItem = null;
- this.isSelected = false;
- },
- loadView: function(){
- debugger;
- MWF.xDesktop.requireApp("query.Query", "Viewer",function(){
- this.viewContent.empty();
- var data = JSON.parse(this.view.data);
- this.viewer = new MWF.QViewer(this.viewContent, {
- "application": this.view.query,
- "viewName": this.view.name,
- "isExpand": data.isExpand
- }, {"export": true}, this.app);
- }.bind(this));
- }
- });
- MWF.xApplication.query.Query.StatItem = new Class({
- Extends: MWF.xApplication.query.Query.ViewItem,
- getContentNode: function(){
- return this.app.naviStatContentNode;
- },
- loadView: function(){
- MWF.xDesktop.requireApp("query.Query", "Statistician",function(){
- this.viewContent.empty();
- this.viewer = new MWF.QStatistician(this.app, this.viewContent, {
- "application": this.view.query,
- "statName": this.view.name,
- "isTable": true,
- "isChart": true,
- "isLegend": true
- });
- }.bind(this));
- }
- });
- MWF.xApplication.query.Query.StatementItem = new Class({
- Extends: MWF.xApplication.query.Query.ViewItem,
- getContentNode: function(){
- return this.app.naviStatementContentNode;
- },
- loadView: function(){
- MWF.xDesktop.requireApp("query.Query", "Statement",function(){
- this.viewContent.empty();
- this.viewer = new MWF.QStatement(this.app, this.viewContent, {
- "application": this.view.query,
- "statementName": this.view.name,
- "statementId" : this.view.id
- });
- }.bind(this));
- }
- });
|