Project Online JS 添加Ribbon按钮

var Projects = Projects || {};
(function () {
    Projects.ribbonButtonClick = function (name) {
        var projectIds = projectCenterComponent.get_GridSatellite().GetJsGridControlInstance().GetSelectedRecordKeys();
        if (projectIds.length === 1 && projectIds[0].length === 36) {
            var projectId = projectIds[0];
            var url = '';
            switch (name) {
                case "项目报表":
                    url = "/sites/ppm/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/sites/ppm/Reports/Project%20Detail%20Report.rdl&RP:ProjectUID=" + projectId;
                    break;
                case "吊装规划":
                    url = "/sites/ppm/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/sites/ppm/Reports/ProjectDemandReport.rdl&RP:ProjectUID=" + projectId
                    break;
                case "项目资源":
                    url = '/sites/ppm/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/sites/ppm/Reports/ProjectResourceReport.rdl&RP:ProjectUID=' + projectId;
                    break;
                case "项目问题":
                    url = '/sites/ppm/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/sites/ppm/Reports/ProjectIssueReport.rdl&RP:ProjectUID=' + projectId;
                    break;
                case "项目风险":
                    url = '/sites/ppm/_layouts/15/ReportServer/RSViewerPage.aspx?rv:RelativeReportUrl=/sites/ppm/Reports/ProjectRiskReport.rdl&RP:ProjectUID=' + projectId;
                    break;
            }
            window.open(url);
        } else {
            alert('请选择一个项目');
        }
    };

    Projects.viewOrganization = function () {
        ExecuteOrDelayUntilScriptLoaded(function () { //Wait for sp.ribbon.js to be loaded
            var pm = SP.Ribbon.PageManager.get_instance();
            SelectRibbonTab('Ribbon.ContextualTabs.ProjectCenter.Home', true);
            pm.add_ribbonInited(ribbon_init);
        }, 'sp.ribbon.js');
    };


    function ribbon_init() {
        var ribbon = (SP.Ribbon.PageManager.get_instance()).get_ribbon();
        var tab = ribbon.getChild('Ribbon.ContextualTabs.ProjectCenter.Home');
        var group = new CUI.Group(ribbon, 'CustomReport.Group', '项目报表', '项目报表', 'ProjectCenterHomeTab', "CustomReport");
        tab.addChild(group);
        var layout = new CUI.Layout(ribbon, 'CustomReport.Layout', 'CustomReport.Layout');
        group.addChild(layout);
        group.selectLayout(layout.get_title());
        var section = new CUI.Section(ribbon, 'CustomReport.Section', 2, 'Top'); //2==OneRow
        layout.addChild(section);
        var row1 = section.getRow(1);

        //项目立项
        var create_controlProperties = new CUI.ControlProperties();
        create_controlProperties.Command = 'ProjectCenterHomeTab';
        create_controlProperties.TemplateAlias = 'o1';
        create_controlProperties.ToolTipDescription = '项目报表';
        create_controlProperties.Image32by32 = '/_layouts/15/2052/images/formatmap32x32.png';
        create_controlProperties.Image32by32Top = '-204';
        create_controlProperties.Image32by32Left = "-238";
        create_controlProperties.ToolTipTitle = '项目报表';
        create_controlProperties.LabelText = '项目报表';
        var create_button = new CUI.Controls.Button(ribbon, 'BPM.Button.ViewOrg', create_controlProperties);
        //create_button.set_enabled(true);
        var create_controlComponent = create_button.createComponentForDisplayMode('Large');
        row1.addChild(create_controlComponent);

        //暂停
        var stop_controlProperties = new CUI.ControlProperties();
        stop_controlProperties.Command = 'ProjectCenterHomeTab';
        stop_controlProperties.TemplateAlias = 'o1';
        stop_controlProperties.ToolTipDescription = '吊装规划';
        stop_controlProperties.Image32by32 = '/_layouts/15/2052/images/formatmap32x32.png';
        stop_controlProperties.Image32by32Top = '-272';
        stop_controlProperties.Image32by32Left = "-442";
        stop_controlProperties.ToolTipTitle = '吊装规划';
        stop_controlProperties.LabelText = '吊装规划';
        var stop_button = new CUI.Controls.Button(ribbon, 'BPM.Button.stop', stop_controlProperties);
        //stop_button.set_enabled(true);
        var stop_controlComponent = stop_button.createComponentForDisplayMode('Large');
        row1.addChild(stop_controlComponent);

        //重启
        var restart_controlProperties = new CUI.ControlProperties();
        restart_controlProperties.Command = 'ProjectCenterHomeTab';
        restart_controlProperties.TemplateAlias = 'o1';
        restart_controlProperties.ToolTipDescription = '项目资源';
        restart_controlProperties.Image32by32 = '/_layouts/15/2052/images/formatmap32x32.png';
        restart_controlProperties.Image32by32Top = '-68';
        restart_controlProperties.Image32by32Left = "-272";
        restart_controlProperties.ToolTipTitle = '项目资源';
        restart_controlProperties.LabelText = '项目资源';
        var restart_button = new CUI.Controls.Button(ribbon, 'BPM.Button.restart', restart_controlProperties);
        //restart_button.set_enabled(true);
        var restart_controlComponent = restart_button.createComponentForDisplayMode('Large');
        row1.addChild(restart_controlComponent);

        //变更
        var change_controlProperties = new CUI.ControlProperties();
        change_controlProperties.Command = 'ProjectCenterHomeTab';
        change_controlProperties.TemplateAlias = 'o1';
        change_controlProperties.ToolTipDescription = '项目问题';
        change_controlProperties.Image32by32 = '/_layouts/15/2052/images/formatmap32x32.png';
        change_controlProperties.Image32by32Top = '-170';
        change_controlProperties.Image32by32Left = "-136";
        change_controlProperties.ToolTipTitle = '项目问题';
        change_controlProperties.LabelText = '项目问题';
        var change_button = new CUI.Controls.Button(ribbon, 'BPM.Button.change', change_controlProperties);
        //change_button.set_enabled(true);
        var change_controlComponent = change_button.createComponentForDisplayMode('Large');
        row1.addChild(change_controlComponent);

        //关闭
        var close_controlProperties = new CUI.ControlProperties();
        close_controlProperties.Command = 'ProjectCenterHomeTab';
        close_controlProperties.TemplateAlias = 'o1';
        close_controlProperties.ToolTipDescription = '项目风险';
        close_controlProperties.Image32by32 = '/_layouts/15/2052/images/formatmap32x32.png';
        close_controlProperties.Image32by32Top = '0';
        close_controlProperties.Image32by32Left = "0";
        close_controlProperties.ToolTipTitle = '项目风险';
        close_controlProperties.LabelText = '项目风险';
        var close_button = new CUI.Controls.Button(ribbon, 'BPM.Button.close', close_controlProperties);
        //close_button.set_enabled(true);
        var close_controlComponent = close_button.createComponentForDisplayMode('Large');
        row1.addChild(close_controlComponent);

        create_button.getDOMElementForDisplayMode("Large").onclick = function () {
            Projects.ribbonButtonClick("项目报表");
        };

        stop_button.getDOMElementForDisplayMode("Large").onclick = function () {
            Projects.ribbonButtonClick("吊装规划");
        };

        restart_button.getDOMElementForDisplayMode("Large").onclick = function () {
            Projects.ribbonButtonClick("项目资源");
        };

        change_button.getDOMElementForDisplayMode("Large").onclick = function () {
            Projects.ribbonButtonClick("项目问题");
        };

        close_button.getDOMElementForDisplayMode("Large").onclick = function () {
            Projects.ribbonButtonClick("项目风险");
        };
    }
})();

  

 

 

posted on 2018-12-18 19:36  larryle  阅读(476)  评论(0编辑  收藏  举报