2016-04-11 139 views
1

我已經自定義了inotes,因爲我想在「郵件讀取」中添加一個按鈕,我的意思是在用戶打開mail.as時在圖像中顯示。Xpage自定義inotes配置獲取配置文件字段

custom-button

在這個按鈕後面的fuctionality是我想與指定的或硬編碼的數據庫名稱在行吟詩人的窗口中打開去其他窗口。 在Custom_js_Lite 代碼代碼:

function Custom_Scene_Actions_Lite(s_MenuID) 
{ 
if (-1 == s_MenuID.indexOf("mailread")) 
     return false; 

    // Add the button 
    var add1 = [{title:"custom-button", find_id: "print",class:"test", id: "sync", before: false, 
     action:"openDatabase{}", help_text:"custom-button" }]; 
    addActionsLite(s_MenuID, true, add1); 
} 
    // Calling function onclick. 
function openDatabase(){ 
     var unids = API_GetSelectedDocs_Lite(); 
     var server = location.host; 
     var temp = location.pathname.substr(1, location.pathname.length); 
     var pos = temp.toLowerCase().indexOf(".nsf"); 
     var database = temp.substr(0, pos + 4); 
    window.open("http://localhost/example.nsf/home.xsp?server="+server+"&db="+database+"&mailDocId="+unids); 

在上述代碼window.open,打開與從得到選擇unids給定鏈接 「API_GetSelectedDocs_Lite();」但數據庫名稱是硬編碼,即「example.nsf」;

因此,我只是想保存數據庫名稱,一旦該用戶的郵件數據庫的個人資料文件保存數據庫名稱,所以它會幫助我從配置文件中獲取數據庫名稱來打開它。

我不確定,如果我可以檢索子表單中的配置文件字段,自定義的註釋。

我需要一些想法如何使用custom_js_lite檢索郵件數據庫中的配置文件文件。

或者我真的想知道是否有其他辦法可以實現這一目標。

回答

0

我得到了解決方案。 我剛纔檢索名爲「iNotesProfile」 profile文件,並在其「DB_NAME」從我的XPage按鈕添加新的字段代碼更新配置文件文檔是:

var currdb:NotesDatabase = session.getDatabase(session.getServerName(),"mail/abc.nsf"); 
    var doc:NotesDocument = currdb.getProfileDocument("iNotesProfile", ""); 
    doc.replaceItemValue("db_name",database.getFileName()); 
    doc.save(); 

這個腳本編輯「iNotesProfile」簡介當前用戶的文檔,並在「db_name」字段中設置當前數據庫名稱。現在我們已經將數據庫基礎設置在可以從郵件數據庫中使用的文檔中。

現在的任務是讓數據庫名稱上custom-button.In Custom_js_Lite的點擊代碼:

function Custom_Scene_Actions_Lite(s_MenuID) 
    { 
    if (-1 == s_MenuID.indexOf("mailread")) 
      return false; 

    // Add the button // 

     var add1 = [{title:"custom-button", find_id: "print",class:"test", id: "sync", before: false, 
      action:"openDatabase{}", help_text:"custom-button" }]; 
     addActionsLite(s_MenuID, true, add1); 
    } 

function openDatabase(){ 
    var unids = API_GetSelectedDocs_Lite(); 
    var server = location.host; 
    var temp = location.pathname.substr(1, location.pathname.length); 
    var pos = temp.toLowerCase().indexOf(".nsf"); 
    var database = temp.substr(0, pos + 4); 
    var mailFilePath = API_GetMailfilePath_Lite(); 
    var db_name = '@{{@GetProfileField("iNotesProfile";"db_name")};jsData}'; 
     if(db_name == ""){ 
      alert("Database is not configured! Contact Administrator."); 
     }else{ 
      window.open("http://localhost/"+db_name+"/home.xsp?server="+server+"&db="+database+"&mailDocId="+unids); 
     } 

所以我們現在能夠發現這是由存儲iNotesProfile文檔中的數據庫名稱@{{@GetProfileField("iNotesProfile";"db_name")};jsData},並可以用它來去那個數據庫。

相關問題