zoukankan      html  css  js  c++  java
  • [saiku] 简化/汉化/设置默认页

    上一篇分析了schema文件 [ http://www.cnblogs.com/avivaye/p/4877832.html ]

    在安装完毕Saiku后,由于是社区版本,所以界面上存在很多升级为商业版的文字。

    这一篇就讲述下如何简化saiku的操作界面

    1、去除查询页面的升级为商业版的提示

    You are using Saiku Community Edition, please consider upgrading to Saiku Enterprise, or entering a sponsorship agreement with us to support development. info@meteorite.bi
    
    去掉上述提示的修改方法如下:
    
    1)在 saiku-server	omcatwebappsROOT 目录下找到index.html文件,注释或者删除如下内容:
    
    <script type="text/x-jquery-tmpl" id="template-upgrade">
      <div class="upgradeheader">
        You are using Saiku Community Edition, please consider <a target="_blank" href="http://saiku.meteorite.bi/support">purchasing support,     or entering a sponsorship agreement with us</a> to support development. <a href="mailto:info@meteorite.bi?subject=Supporting Saiku">i    nfo@meteorite.bi</a><span class="close_tab sprite"></span>
      </div>
    </script>
    
    2)在 saiku-server	omcatwebappsROOTjssaikuviews 目录下找到 Upgrade.js 文件,找到如下代码注释或者删除:
    
    $(self.workspace.el).find('.upgrade').append("....");

    2、去除登陆页面的Evaluation Login

    在 saiku-server	omcatwebappsROOTjssaikuviews 目录下找到 LoginForm.js 文件,找到如下代码注释或者删除:
    
    
    "<% if (Settings.EVALUATION_PANEL_LOGIN) { %>" +
    "<div class='eval-panel'>" +
    "<a href='#eval_login' class='i18n' id='eval-login'>Evaluation Login</a>" +
    "<div class='eval-panel-user clearfix' hidden>" +
    "<ul>" +
    "<li class='i18n'>Administrator</li>" +
    "<li class='i18n'>Username: admin</li>" +
    "<li class='i18n'>Password: admin</li>" +
    "</ul>" +
    "</div>" +
    "</div>" +
    "<% } %>" +

    3、去除导航栏中无用按钮:关于

    在 saiku-server	omcatwebappsROOT 目录下找到index.html文件,注释或者删除如下内容:
    <li><a id='about' href='#about' title='About' class='about i18n sprite'></a></li>

    4、去除导航栏中无用按钮:帮助改进翻译

    在 saiku-server	omcatwebappsROOTjssaikupluginsI18n 目录下找到plugin.js文件,注释或者删除如下内容:
    
    <form class='workspace_results'>" +
    "Your name: <input type='text' name='translator_name' />" +
    "<p>Please fill in the appropriate translation in the blanks provided:<p>" +
    "<% _.each(translation_table, function(val, key) { %>" +
    "<div><b><%= key %></b><br />" +
    "<input type='text' value='<%= val.value %>' name='<%= val.name %>' />" +
    "</div>" +
    "<% }); %>" +
    "<div><input class='submit-translation' type='submit' value='Submit translation' /></div>" +
    "</form>

    5、去除登陆后的欢迎页面

    在 saiku-server	omcatwebappsROOTjssaikuviews 目录下找到  SplashScreen.js 文件,找到如下代码注释或者删除:
    
    <div> 
    <div id='splash'> 
    
    <nav> 
    <ul> 
    <li class='active'><a class='welcome' href='#'>Welcome</a></li>
    <li><a class='features' href='#'>Features</a></li>
    <li><a class='help' href='#'>Get Help</a></li>
    <li class='enterprisetoggle enterprise'><a class='enterprise' href='#'>Enterprise</a></li>
    </ul> 
    <h2>Explore Data. Visualise. Act.</h2> 
    </nav>
    
     <section class='tabs'> 
     <section style='margin-top:50px' id='welcome'> <h1 class='saikulogo'>Saiku</h1> <p>Saiku has the power to change the way you think about your business and make decisions. Saiku provides powerful, web based analytics for everyone in your organisation. Quickly and easily analyse data from any data source to discover what is really happening inside and outside your organisation. </p><h2>Quick Links</h2> <ul class='quicklinks'> <li><a class='run_query' href='#'>Create a new query</a></li><li><a href='http://saiku.meteorite.bi' target='_blank'>Visit the website</a></li><li><a href='http://jira.meteorite.bi' target='_blank'>Report a bug</a></li></ul> <p class='fixed'><a class='enterprisetoggle button' href='http://meteorite.bi' target='_blank'>Get Enterprise</a></p><h2>News</h2> <div id='news'></div></section> 
     
     <section style='display:none !important;margin-top:50px' id='features'> <h1 class='saikulogo'>Saiku</h1> <h2>Features</h2> <h3>Web Based Analysis</h3> <p>Saiku provides the user with an entirely browser based experience. We support all modern browsers, and our user interface is 100% HTML and Javascript. <br/>Saiku uses REST based communications, this allows the development of custom user interfaces and facilitates the easy integration of the Saiku Server into other applications and services.</p><h3>Standards Compliant</h3> <p>Saiku is based upon the Microsoft MDX query language and will work on most JDBC compliant data sources. We also provide a number of connectors to NOSQL data sources.</p><h3>Dynamic charting</h3> <p>Saiku uses a flexible charting engine to provide a wide range of charts and graphs. These are all HTML & Javascript only and don't require flash to be installed on the computer.</p><h3>Pluggable visualisation engine</h3> <p>Saiku Enterprise boasts a fully pluggable visualisation engine. This allows developers to build third party extensions and plug them into Saiku Enterprise to extend or replace the existing visualisations.</p></section> 
     
     <section style='display:none !important;margin-top:50px' id='help'> <h1 class='saikulogo'>Saiku</h1> <h2>Help</h2> <p>We provide Training, Consulting and Support to ensure you get the most from Saiku and your data. Our services cover all aspects of data analysis including data strategy, design, architecture, deployment and application/software support.</p><table style='margin-bottom:100px;'> <tr> <th>Wiki</th> <th>Forums</th> <th>Support</th> </tr><tr> <td>Why not try our new <a href='http://wiki.meteorite.bi' target='_blank'>Wiki site</a><br/>for community documentation.</td><td>We also have our new <a href='http://forums.meteorite.bi' target='_blank'>forums</a><br/> for help and support.</td><td>If you require more, <br/><a href='mailto:info@meteorite.bi'>contact us</a> for support!.</td></tr></table> </section> 
     
     <section style='display:none !important;margin-top:50px' id='enterprise'> <h1 class='saikulogo'>Saiku</h1> <h2>Enterprise</h2> <p>Saiku Enterprise is our fully supported and tested server and Pentaho plugin system. Buy Saiku Enterprise from as little as $15 per user per month and enjoy the addtional features Saiku Enterprise has to offer</p><p>To find out more visit our <a href='http://meteorite.bi' target='_blank'>site</a> or <a href='mailto:info@meteorite.bi'>schedule a call</a> with one of us and we can show you why you should choose Saiku Enterprise!</p></section> </section>
    
     </div>
     </div>

     6、删除其他无关代码

    在 saiku-server	omcatwebappsROOT 目录下找到index.html文件,注释或者删除如下内容:

    <script type="text/javascript" src="js/ga.js"></script> <script src="http://localhost:9000/livereload.js"></script>
    删除原因:ga.js是GA代码,用于统计的。livereload.js本身是不存在的,请求一直是404。

    7、修改或者删除LOGO

    在 saiku-server	omcatwebappsROOT 目录下找到index.html文件,修改或者删除如下内容:
    
    <h1 id='logo'>
      <a href='http://www.analytical-labs.com/' title='Saiku - Next Generation Open Source Analytics' target="_blank" class='sprite'>Saiku</a>
    </h1>

    8、汉化操作

    转载自:http://blog.csdn.net/huyou1983216/article/details/48731663  

    Saiku-ui 为前端,使用 Backbone.js 框架,此框架为一个mvc模式的前端框架。

    可单独对saiku-ui进行修改

     

    1.找到中文对照的本地化json文件
    
    /saiku-ui/js/saiku/plugins/I18n/po/cn.json
    
    此文件采用的json串格式,在页面初始化第一次调用本地化操作时,会先初始化此文件到内存中,因此我们在操作本地化时,可以拿到Saiku.i18n.po_file 也就是 cn.json 
    
    2.找到汉化操作的js插件
    
    /saiku-ui/js/saiku/plugins/I18n/plugin.js
    
    saiku处理本地化文件是对含有添加class=”i18n“的html标签进行文本替换,直接修改cn.json的本地化文件无法成功汉化,所以在全文汉化时需要:
    
    1)在全文汉化时需要找到汉化标签所在位置,对此标签添加i18n样式
    2)执行汉化代码
    
    方式1:查找所有的.i18n样式的标签进行替换
    
    $(".i18n").i18n(Saiku.i18n.po_file) ;
    
    方式2:自动查找i18n样式的标签进行替换
    
     Saiku.i18n.translate() ;
    
    差异说明: 
    如果使用方法2,那么带有i18n的标签必须依据初始化了
    方法1为class中含有i18n的变量进行汉化然后替换到saiku模板中进行展示

    备注:
    如果需要汉化的标签中的class 同时出现"i18n","i18n_field","i18n_translate", 则说明本地化文件中没有或者中英文对照错误。

     

    9、设置默认页 ( 将saiku中登陆后的默认页面修改为"新建查询"窗口 ) 

    参考链接:http://blog.csdn.net/huyou1983216/article/details/48825789

    1)设置默认窗口为打开查询窗口
    
    找到  /saiku-ui/js/saiku/models/SessionWorkspace.js
    此文件为初始化工作区的前端代码
    
    在 process_datasources 方法下,将Saiku.tab.add(new 。。。) 注释掉 改为$("#open_query).click(),这样每次刷新或登录后,默认打开的就是"打开查询"的tab页了
    
    if (!Settings.INITIAL_QUERY && paramsURI.splash) {
    
        //Saiku.tabs.add(new SplashScreen());
        //Saiku.tabs.add(new Workspace());
        $("#open_query").click();
    
    } else if(!Settings.INITIAL_QUERY){
    
        Saiku.tabs.add(new Workspace());
    
    }
    
    2)设置默认打开的Tab
    
    在 Tab.js 中配置
    
    if(Saiku.session.isAdmin){
    
        menuitems = {
            "new": {name: "New", i18n: true },
            /* "duplicate": { name: "Duplicate", i18n: true},*/
            /* "closeothers": {name: "Close Others", i18n: true },*/
            "closethis": {name: "Close This", i18n: true }
        };
    
    }else{
    
         menuitems = {"closethis": {name: "Close This", i18n: true }};
    
    }
    
    在 menuitems中,可以增加自己的上下文,也可以去掉上下文。
    
    3)是否允许关闭TAB
    
    在Tab.js中如下代码:
    
        template: function() {
            // Create tab
            return _.template("<a class='saikutab i18n' href='#<%= id %>'><%= caption %></a>" + (this.caption != 'Repository' ?  "<span class='close_tab sprite'>Close tab</span>" : "<span class='sprite'>&nbsp;&nbsp;</span>"))
                ({
                    id: this.id,
                    caption: this.caption
                });
        },
    
    此段代码判断了当前tab 的caption是否是Repository,如果是,则不显示Close tab,否则显示关闭链接
    4)设置默认展开全部节点

    A 修改样式

    class="sprite folder" 为文件夹的样式,去掉 collapsed 样式

    class="hide folder_content" 去掉hide样式

    B 将 <a href="#pager" class="pager sprite"></a> 标签删除掉 

    var TabSet = Backbone.View.extend({
    className: 'tabs',
    queryCount: 0,
    dashCount: 0,

    events: {
    'click a.pager': 'togglePager' ,
    'click a.new' : 'new_tab'
    },

    _tabs: [],

    /**
    * Render the tab containers
    * @returns tab_container
    */
    render: function() {
    /*$(this.el).html('<a href="#pager" class="pager sprite"></a><ul><li class="newtab"><a class="new">+&nbsp;&nbsp;</a></li></ul>')
    .appendTo($('#header'));*/
    $(this.el).html('<ul><li class="newtab"><a class="new">+&nbsp;&nbsp;</a></li></ul>')
    .appendTo($('#header'));
    this.content = $('<div id="tab_panel">').appendTo($('body'));
    this.pager = new TabPager({ tabset: this });
    return this;
    },

    这样设置完毕后,每次打开都是默认展开节点

    10 互换导航栏Cube和Dimention的位置

    将index.html里面的
    
    <div class="sidebar_inner">
        <%= cube_navigation %>
    </div>
    <div class="metadata_attribute_wrapper">
        <%=  _.template($("#template-attributes").html())() %>
    </div>
    
    的两个div的位置互换即可
    
    <div class="metadata_attribute_wrapper">
        <%=  _.template($("#template-attributes").html())() %>
    </div>
    <div class="sidebar_inner">
        <%= cube_navigation %>
    </div>

    11 互换位置后左侧底部某些cube项显示不全

    这个是CSS样式的问题
    
    在index.html里面class = "accordion-content" 的padding-bottom调大就行了  原来是10px  调整为50px;
    
    <div class='accordion-content' style='padding-bottom:50px;display: block;'>
  • 相关阅读:
    JAVA多线程2 锁
    IE8标准模式下VML不能显示问题
    JAVA多线程1
    JAVA判断32位还是64位,调用不同的DLL
    JNA调用DLL
    如何提高执行力
    httpClient多线程请求
    【NodeJS】安装
    [转载]一个项目涉及到的50个Sql语句(整理版)
    resultMap中的collection集合出现只能读取一条数据的解决方法
  • 原文地址:https://www.cnblogs.com/avivaye/p/4877882.html
Copyright © 2011-2022 走看看