diff --git a/panoramix/static/widgets/viz_bignumber.css b/panoramix/static/widgets/viz_bignumber.css new file mode 100644 index 0000000000000..56ea4659d8bee --- /dev/null +++ b/panoramix/static/widgets/viz_bignumber.css @@ -0,0 +1,26 @@ +.viz_bignumber g.axis text{ + font-size:10px; + font-weight:normal; + color: gray; + fill: gray; + text-anchor:middle; + alignment-baseline: middle; + font-weight: none; +} + +.viz_bignumber text.big{ + stroke: black; + text-anchor:middle; + fill: black; +} + +.viz_bignumber g.tick line { + stroke-width: 1px; + stroke: grey; +} + +.viz_bignumber .domain { + fill: none; + stroke: black; + stroke-width; 1; +} diff --git a/panoramix/static/widgets/viz_bignumber.js b/panoramix/static/widgets/viz_bignumber.js new file mode 100644 index 0000000000000..5de399505b4f1 --- /dev/null +++ b/panoramix/static/widgets/viz_bignumber.js @@ -0,0 +1,145 @@ +function viz_bignumber(token, json_callback) { + +var div = d3.select('#' + token); +var render = function(){ + d3.json(json_callback, function(error, payload){ + json = payload.data; + div.html(""); + //Define the percentage bounds that define color from red to green + if(error != null){ + var err = '
{{ col }} | {% endfor %}
---|
{{ row[col] }} diff --git a/panoramix/templates/panoramix/viz_word_cloud.html b/panoramix/templates/panoramix/viz_word_cloud.html index 3381a6c65a948..3260da7e4a81d 100644 --- a/panoramix/templates/panoramix/viz_word_cloud.html +++ b/panoramix/templates/panoramix/viz_word_cloud.html @@ -6,69 +6,12 @@ {% macro viz_js(viz) %} {% endmacro %} diff --git a/panoramix/viz.py b/panoramix/viz.py index 55e17bb6b14da..e20eaa0af3fa0 100644 --- a/panoramix/viz.py +++ b/panoramix/viz.py @@ -75,6 +75,10 @@ def get_url(self, **kwargs): if 'action' in d: del d['action'] d.update(kwargs) + # Remove unchecked checkboxes because HTML is weird like that + for key in d.keys(): + if d[key] == False: + del d[key] href = Href( '/panoramix/datasource/{self.datasource.type}/' '{self.datasource.id}/'.format(**locals())) @@ -159,6 +163,15 @@ def query_obj(self): } return d + def get_json(self): + payload = { + 'data': json.loads(self.get_json_data()), + 'form_data': self.form_data, + } + return json.dumps(payload) + + def get_json_data(self): + return json.dumps([]) class TableViz(BaseViz): verbose_name = "Table View" @@ -212,7 +225,11 @@ class WordCloudViz(BaseViz): ('size_from', 'size_to'), 'rotation', ] - js_files = ['d3.layout.cloud.js'] + js_files = [ + 'd3.min.js', + 'd3.layout.cloud.js', + 'widgets/viz_wordcloud.js', + ] def query_obj(self): d = super(WordCloudViz, self).query_obj() @@ -224,7 +241,7 @@ def query_obj(self): d['groupby'] = [d['groupby'][0]] return d - def get_json(self): + def get_json_data(self): df = self.get_df() df.columns = ['text', 'size'] return df.to_json(orient="records") @@ -234,7 +251,11 @@ class NVD3Viz(BaseViz): verbose_name = "Base NVD3 Viz" template = 'panoramix/viz_nvd3.html' chart_kind = 'line' - js_files = ['d3.min.js', 'nv.d3.min.js'] + js_files = [ + 'd3.min.js', + 'nv.d3.min.js', + 'widgets/viz_nvd3.js', + ] css_files = ['nv.d3.css'] @@ -283,7 +304,7 @@ def get_df(self): df['group'] = df[[self.series]] return df - def get_json(self): + def get_json_data(self): df = self.get_df() series = defaultdict(list) for row in df.to_dict(orient='records'): @@ -299,7 +320,13 @@ def get_json(self): class BigNumberViz(BaseViz): verbose_name = "Big Number" template = 'panoramix/viz_bignumber.html' - js_files = ['d3.min.js'] + js_files = [ + 'd3.min.js', + 'widgets/viz_bignumber.js', + ] + css_files = [ + 'widgets/viz_bignumber.css', + ] form_fields = [ 'viz_type', 'granularity', @@ -325,7 +352,7 @@ def query_obj(self): self.form_data['metric'] = metric return d - def get_json(self): + def get_json_data(self): form_data = self.form_data df = self.get_df() df = df.sort(columns=df.columns[0]) @@ -394,7 +421,7 @@ def get_df(self): df = pd.rolling_sum(df, int(rolling_periods)) return df - def get_json(self): + def get_json_data(self): df = self.get_df() series = df.to_dict('series') chart_data = [] @@ -491,7 +518,7 @@ def get_df(self): df = df.sort(self.metrics[0], ascending=False) return df - def get_json(self): + def get_json_data(self): df = self.get_df() df = df.reset_index() df.columns = ['x', 'y'] @@ -515,7 +542,7 @@ def get_df(self): df = df.sort(self.metrics[0], ascending=False) return df - def get_json(self): + def get_json_data(self): df = self.get_df() series = df.to_dict('series') chart_data = [] |