hello all
I'm trying to create a donut chart in OBIEE from oracle , the version I'm using is : 12.2.1.4.0 .
please note that our OBIEE is located on our organization network and there is no internet access.
so i can't use any solutions that need internet like Google API.
donuts chart sample:
only pie chart is available:
Many thanks all ..
Data Visualization has the donut chart type out of the box. It's available in 12.2.1.4.
You can use D3 to and create this via a narrative but you will need to code it yourself.
To do this you need to
Make d3 available on your BI server (I can't remember whether d3.js is already there in 12.2.1.4 or not)
Create analysis you want to chart
Take code from https://www.d3-graph-gallery.com/graph/donut_basic.html and put into narative (remembering to tick the contains HTML check box)
Assuming you have a table that looks something like
| Name | Value |
| ---- | ---- |
| a | 9 |
| b | 20 |
| c | 30 |
| d | 8 |
| e | 12 |
Prefix
<!-- Load D3 library, need to change URL acccordingly -->
<script src="/analytics/res/[release string]/d3.js" />
<!-- Create div to hold your chart -->
<div id="my_dataviz"></div>
<!-- Start my donut chart script -->
<Script>
var data = {
Narrative
#1: #2
Row Separator
,
Postfix
}
// the d3 script references above minus the starting <script> tag and the section which sets data
</script>
How Does It Work
The key is the narrative bit. #1 references the first column, #2 the second and so on.
This just builds up the script dynamically so the output would end up looking like
var data = {a: 9, b: 20, c:30, d:8, e:12}
You can change this as necessary, add tooltips to display values when you hover over, display a total in the middle etc.
If D3 is not already there (and it is a bit of a faff to find but go to domain home and find . -name "d3*js" and see what pops up) then you will need somewhere to make the d3 library available (easy if you have OHS in front of BI) have a look at https://gianniceresa.com/2016/12/deploy-custom-folder-obiee-12c-analyticsres/ to create somewhere to access script locally
Cons
This approach isn't without cons. The first one is that you need to code this up in javascript. It isn't too difficult and there are plenty of examples on the internet but it is obviously more difficult than just creating a normal chart.
Another one is exporting. As these charts are rendered in the browser and BI just thinks they are html they will not export properly (you will see the raw HTML / javascript)
Related
I am trying to find out if I can effect the code box inside of a mark down document with scss?
I am working on a jekyll project and I am using markdown for my posts. Id like to edit the styling of the code box inside of the .md but cant seem to figure it out.
Is this possible?
Found the answer Here
Kramdown treats each new line as a row and doesn't render Markdown bullet lists inside table cells, and instead of rendering HTML, it is escaped and outputted as a single line of text.
You can tell Kramdown to leave the HTML alone and output as is, with the nomarkdown extension. Just wrap the HTML code with {::nomarkdown} ... {:/}
| Name | Value |
|------|-----------------------------------------|
| one | {::nomarkdown}<i>foo</i>{:/} |
| two | {::nomarkdown}<ul><li>bar</li></ul>{:/} |
I have a layout design clearly made for 1200px / 15 cols framework, but my client wants to use Bootstrap 4 with SASS only. Is it even possible to transform Bootstrap into 15 cols layout? I haven't seen such an example online. I'm not a huge fan of Bootstrap for small projects. It is a trend I honestly don't understand. Might be too heavy for a 5 pages website & projects are usually done according to the content, not according to some framework, Twitter-backed or not.
But, this is it.
If it would be possible to code a 15 cols layout, could you give me a hint on how to begin? And how long would it take to perform such an adaptation?
You can just recompile bootstrap 4 with the proper settings.
The documentation at: https://v4-alpha.getbootstrap.com/layout/grid/#customizing-the-grid should explain it, but since it is a temporary link I'll include it here.
First you should be able to build the SASS into CSS, but overall you just have to set the variable for how many columns before including the bootstrap file to be built, or modify the variable.scss file and change the value of $grid-columns value like so:
$grid-columns: 15;
That is the starting point, you may have to adjust other grid variables to control the total width and gutter between each column etc.
You just need to change the $grid-columns variable using SASS.
$grid-columns: 15;
You may also want to check out other variables like $grid-gutter-width to decrease the spacing between columns since you're using more columns.
Working Demo
Also see:
creating custom grid number for bootstrap - Bootstrap
I am using the following module extension in Joomla 3.0 to display articles: https://www.gavick.com/news-show-pro
The module displays articles in columns and slides to the next article on automation or with pagination buttons.
Problem: It always slides by the nr of columns.
Example: If you specify 4 columns and paginate it slides away those 4 columns to the next 4.
Is there an option which allows me to just slide one column away and display a new one at the end.
Apologies for the initial comment. Looked too quickly at the word "Pro".
This isn't a default feature with this module, however some core jquery hacks can be made to the module, although I'm not a fan of some sort of approach and would suggest using a different module. Below os a little something to get you started.
Firstly ensure you are using the jQuery engine rather than MooTools. To to this, in the Module setting, go to the External Files tab and set the Used Javascript Framework to jQuery.
Go to line 275 of the following the following file:
modules\mod_news_pro_gk5\interface\scripts\engine.jquery.js
where you will find this code:
jQuery($this.module.find('.nspArtScroll2')).animate({
'margin-left': (-1 * this.arts_current * this.arts_block_width) + "%"
}, $this.config['animation_speed']);
and replace it with the following:
var contentWidth = jQuery('.nspArt').width();
jQuery($this.module.find('.nspArtScroll2')).animate({
'margin-left': "-" + contentWidth + "px"
}, $this.config['animation_speed']);
You will now notice that the slide moves 1 article at a time, however the previous ones disappear. This is because of the active class. Only articles within the parent element with the class active are set to be visible. From here on, have a mess around with the CSS to set the visibility styling.
Hope this helps
Unfortunately this will not be added to the extension. Here is the belonging github issue:
https://github.com/GavickPro/News-Show-Pro-GK5/issues/214
I've got a site layout which is as follows, if you can imagine the structure!
header
branding | search
navigation
home | about | blog | news | contact
main
news
promotion 1 | promotion 2 | promotion 3
more content | more content
side bar first
sidebar second
footer
privacy policy | etc
The widths of these different sections above are all different - some have more gutting/padding than other.
I'm trying to figure out how in Susy 2 the best way of managing different layout contexts and am trying to figure it out in the documentation but with no proper examples, am struggling a little bit. I've tried using, for example, #include layout under the main section but that fails to do what I'm trying to do so I'm guessing I'm not quite understanding the fundamental concepts of Susy 2.
Any help/advice would be appreciated!
Thank you
Just to clarify, I'm not asking for the code for my site structure to be offered, I'm asking for the functions in the Susy 2 library to be clarified a little as there are no examples of the functions in use and how they should be used is not that apparent.
You probably want to use the with-layout mixin, which changes grid settings for a block of nested code:
nav {
#include with-layout($nav-settings) {
// nav layout code, uses nested settings.
}
}
main {
// main layout code, uses global settings.
}
I am looking at the example here http://davidsulc.github.io/backbone.marionette-nested-views/ it shows how you can create a list a superheroes and for each hero have an inner list of villains.
How would one extend this to not only list villains for each hero, but also their top three favorite colors? for example.
So I could have something like
Batman
-----------------------------------
Bane | Black
Ra's Al Ghul | Blue
The Joker | Orange
The Riddler |
===================================
Spiderman
-----------------------------------
Green Goblin | Red
Venom | Green
| Violet
===================================
Wonder Woman
-----------------------------------
Ares | Silver
Doctor Psycho | Purple
Silver Swan | White
===================================
In the composite view it is as if I need two sets of itemviews and itemcomtainers, something like
HeroView = Backbone.Marionette.CompositeView.extend({
template: "#accordion-group-template",
className: "accordion-group",
itemView: VillainView,
itemViewContainer: "#villainUL",
itemView2: FavoriteColorView,
itemViewContainer2: "#colorUL",
...
But of course such a thing doesn't exist.
Edit: this http://jsfiddle.net/derickbailey/AdWjU/ will probably serve as a solution, but I will have to wait until the morning to adapt it.
First of all, hopefully you're aware of the blog post I wrote to go with the code: http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/
Bad news: I think you'll actually need more work to achieve what you want...
The jsFiddle you linked (http://jsfiddle.net/derickbailey/AdWjU/) displays a list of element that are sub-elements. What you want to do is display two separate lists!
Here's what I'd try: you need to replace the VillainView (which is an ItemView) with a layout which we'll call HeroInfo, in this layout you need to declare 2 regions (one for the villain list, the other for the colors). This new layout also won't be rendered within a ul so you can remove the itemViewContainer from the view definition and the template.
Note you might not be able to specify the layout regions as an object (you can't use ids in the template since they'll be repeated, and you might not yet have access to this.$el). If that's the case, you need to initialize them with something like this:
initialize: function(){
// assuming you have an element with class "js-villain-region" in your layout template
this.addRegion("villainRegion", this.$el.find(".js-villain-region").first());
}
Next, you need to define a VillainView and a ColorView (both are collection views) to be displayed in the layout's regions on the "show" event (see example code using a layout here: https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/contacts/list/list_controller.js#L43
I hope this helps to set you on the right path!
Also, as a side note: this seems to be more challenging than it looks at first glance. If you're doing this as a learning experience, don't get discouraged: you're attempting a challenging, complex view implementation, which will be tricky when first getting into Marionette.