顯示具有 BugNet 標籤的文章。 顯示所有文章
顯示具有 BugNet 標籤的文章。 顯示所有文章

2011年2月9日 星期三

取用BugNet的HtmlEditor Provider

在BugNet Issue維護中,Descriptioncomment是使用html編輯器的方式讓我們可以輸入html格式的文字,我覺得挺好用的.

在BugNet的source code查看這段的做法,發現是利用provider的方式做的,先把相關的srouce code 抽出來,試著放入自已專案用的程式碼中

1.下載最新的BugNet souce code, 目前版本是0.8.276.0, 解壓縮後,複製以下目錄
 \BugNET-0.8.276-Source\src\Library\Providers\HtmlEditorProviders 

2.建立一個新方案,把 \BugNET-0.8.276-Source\src\Library\Providers\HtmlEditorProviders\下的四個專案都加入, 如果有需要,可以修改一下專案的Assembly Name及相關的namespace,不然build出來的dll名稱會是BugNet開頭的dll

3.build 完後,分別將專案內的dll複製出來,add reference 到自已的website 專案中,
同時也複製 以下目錄檔案及檔案

 a. \BugNET-0.8.276-Source\src\BugNET_WAP\Providers\HtmlEditorProviders
 b. \BugNET-0.8.276-Source\src\BugNET_WAP\UserControls\HtmlEditor.ascxHtmlEditor.ascx.cs、HtmlEditor.ascx.designer.cs

3.開啟自已website專案的web.config檔, 加入以下

 <configSections>
<section name="HtmlEditorProvider" type="BugNET.Providers.HtmlEditorProviders.HtmlEditorConfiguration, BugNET.Providers.HtmlEditorProviders" requirePermission="false" allowDefinition="MachineToApplication" />
 </configSections>


<HtmlEditorProvider defaultProvider="CkHtmlEditorProvider">
    <providers>
      <add name="TextboxHtmlEditorProvider" type="BugNET.Providers.HtmlEditorProviders.TextboxHtmlEditorProvider, BugNET.Providers.TextboxHtmlEditorProvider" Height="250" Width="100%" />
      <add name="FckHtmlEditorProvider" type="BugNET.Providers.HtmlEditorProviders.FckHtmlEditorProvider, BugNET.Providers.FckHtmlEditorProvider" Height="250" Width="100%" ToolbarSet="Default" Skin="Silver" providerPath="~\Providers\HtmlEditorProviders\fckeditor\" />
      <add name="CkHtmlEditorProvider" type="BugNET.Providers.HtmlEditorProviders.CkHtmlEditorProvider, BugNET.Providers.CkHtmlEditorProvider" Height="250" Width="100%" Toolbar="Basic" providerPath="~\Providers\HtmlEditorProviders\CKEditor\" />
    </providers>
  </HtmlEditorProvider>


<pages enableSessionState="true" theme="Default">
      <controls>
          <add tagPrefix="bn" tagName="HtmlEditor" src="~/UserControls/HtmlEditor.ascx" />
 </controls>
    </pages>


以上紅字部份是依自已的需求做更改的

4.建立一個測試網頁testHtmlEditor.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="testHtmlEditor.aspx.cs" Inherits="Issues.testHtmlEditor" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    test
  <bn:HtmlEditor id="EditCommentHtmlEditor" Height="200" runat="server" />       
</asp:Content>

執行後就可以看到html editor元件了.

BugNet預設的html editor toolbar是使用"Basic", 這個定義你可在
\BugNET-0.8.276-Source\src\BugNET_WAP\Providers\HtmlEditorProviders\CKEditor\config.js 自行修改,以下是原本的定義
config.toolbar_Basic =
[   
    ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
    ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],   
    '/',
    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
    ['BidiLtr', 'BidiRtl' ],
    ['Link','Unlink','Anchor'],
    ['Image','Table','HorizontalRule'],
    '/',
    ['Styles','Format','Font','FontSize'],
    ['TextColor','BGColor'],
    ['Maximize', 'ShowBlocks','-','About']
];


BugNet中還有不少可學習的點,沒什麼想法的人可以玩看看

2010年12月9日 星期四

BugNet使用二個月的心得

自從10月初開始使用BugNet以來, 我和同事也用這套opensource的工具快2個月了.
大家可以說是愈用愈上癮,因為用這套來做為系統維護的Q&A時,大家將維護過程中遇到的問題及解決過程及個人心得感想全部都一股腦的輸入上去. 害我只得時時提醒大家不要寫一些個人情感抒發文在Comments或Time Tracking上.
同時大家也希望以後公司自己改寫的QA系統可以加上一個個人情感抒發的欄位,讓大家吐一下口水.

用到目前為止,我覺得最好的功能是custom fileds的設定,讓專案維護很有彈性.
再來就是RoadMap的呈現, 哪些還在進行中的問題或已經結案的問題都可以很一目了然

當然,也有一些很煩的地方, 例如有些ISSUS欄位真想要有預設值, 同事抱怨要"打很多字咧"...
還有可以一登入就看到屬於自已的而且跨所有PROJECTS的OPEN ISSUE有哪些嗎? 這也是不錯的建議...
結果今天上BugNet的官網上看, BugNet已有更新版2010/12/05 version 0.8.270.0,而且把這個功能加上去了. 可以參考完整的功能說明


最後,DB的設計我也覺得很清楚,可以很方便讓我寫自已要的報表查詢. 利用pivot 語法,將自訂欄位做一個整合呈現.

這二個月操作上使用很多,但source code就沒看那麼深入,因為偶覺得有點小複雜咧.

等空閒時間多了再來好好細細研究.

2010年10月29日 星期五

BugNet - OraAspNetConString?

今天測試時,突然跳了個runtime error

The connection name 'OraAspNetConString' was not found in the applications configuration or the connection string is empty. (C:\Windows\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 166)

WHY????

今天確實裝了oracle client 11g r2

也剛好google到討論,不然又是一陣莫名奇妙...


Widget Administration not found.

.NET 2.0 SiteMap使用的时候有一个错误

 註解掉 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config 

     <siteMap>
      <providers>
        <add name="OracleSiteMapProvider" type="Oracle.Web.SiteMap.OracleSiteMapProvider, Oracle.Web, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" securityTrimmingEnabled="true" />
      </providers>
    </siteMap>

2010年10月23日 星期六

BugNet Email寄送

啟用寄發Email通知的功能

1.在 /Administration/Host/Settings.aspx 下的 Mail / SMTP 設定mail server , host email

2.在web.config 將

    <system.net>

    <mailsettings>

    <smtp deliverymethod="SpecifiedPickupDirectory">

    <specifiedpickupdirectory pickupdirectorylocation="C:\Email">

    </specifiedpickupdirectory>

    </smtp>

    </mailsettings>

    </system.net>

    改成

    <system.net>

        <mailSettings>

          <smtp deliveryMethod="Network">

          </smtp>

        </mailSettings>

    </system.net>

3.新增issue時,assigned to 時, Notify 要checked (default is true)
4.自已assign給自已的issue異動,你不會收到mail通知的, 但若是別人異動這個issue則會收到.
  You won't receive email notifications for your own actions, but others will.

2010年9月17日 星期五

BugNet Devepoler 角色查看Issue

同事使用BugNet的角色將之設定為Developer, 因為望文生義,所以只幫他勾選了這個角色

有天他登入後,查看Issue List, 點選了某一筆的IssueTitle, 接著畫面就呆住不動等啊等的,出現了了這個錯誤.

Object reference not set to an instance of an object.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   BugNET.Issues.IssueDetail.SetFieldSecurity() in C:\BugNet\WebSite\Issues\IssueDetail.aspx.cs:487
   BugNET.Issues.IssueDetail.Page_PreRender(Object sender, EventArgs e) in C:\NET\BugNet\WebSite\Issues\IssueDetail.aspx.cs:139
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +24
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.Control.PreRenderRecursiveInternal() +112
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4184


debug後在 IssueDetail.aspx.cs SetFieldSecurity 方法, 倒數幾行
if (!ITUser.HasPermission(ProjectId, Globals.Permission.CLOSE_ISSUE.ToString()))
 {
     Status s = Status.GetStatusByProjectId(ProjectId).Find(delegate(Status status){return status.IsClosedState == true;});
       if (s !=null)
        {
            DropDownList stat = (DropDownList)DropStatus.FindControl("dropStatus");
            stat.Items.Remove(stat.Items.FindByValue(s.Id.ToString()));
        }
  }

加入紅字判斷物件是否存在即可.


另外原先下載的sourcre中,少了一個 /jHtmlArea/scripts/jHtmlArea-0.7.0.js目錄及檔案,導致查看issue detail時,會有javascript 找不到屬性或方法的錯.

可以到此網站下載, 在專案中將目錄及檔案加入即可,不然開啟查看明細的page時,要等很久.

2010年9月14日 星期二

BugNet 禁止匿名進入

BugNet預設是可以讓使用者一進入網站後就看到所有的public project的訊息,雖然是唯讀,但總覺得應該先登入後再依來查看project會比較好.

原本以為要改寫程式碼,但後來在資料表BugNet_HostSettings中看到,SettingName有一列名為 DisableAnonymousAccess,將其SettingValue設為True即可禁止匿名登入

2010/09/16....原來在 /Administration/Host/Settings.aspx 下,已經有這個選項的設定了...(汗...)

ps2.如果要依使用者權限來顯示project,則在Admin projects下,進入project administration,將其Security 的Access Type設為private,如此,當使用者登入時project就會依權限角色的設定來顯示了.
預設的Access Type是public ,代表只要登入後,所有人都可直接唯讀該project 內容.

另外,如要停用網站register功能,同樣的找到 DisableUserRegistration 將其SettingValue設為True即可

2010年8月31日 星期二

BugNet 新增選單

Source Code中有個Web.sitemap,看來是定義目錄選單
查看里有個Reports的定義,但實際執行時,選單卻看不到.
在web.config中,將sitemape的註解行拿掉,一debug run後,在Old_App_Code的UIL下的SmartSiteMapProvider.SmartSiteMapProvider_SiteMapResolve事件馬上變成是個無窮迴圈,有點搞不清這個東西,更懶得查找原因.

土方煉鋼一下,在UserControls目錄看到TabMenu.ascx.cs.Page_Load事件寫了許多和menu相關的程式碼,加上一段
if (Context.User.Identity.IsAuthenticated)
{
   if (ITUser.IsInRole("Reporter"))
  {

      Tabs.Add(new Tab(GetLocalResourceObject("Reports").ToString(), "~/Reports/SelectReport.aspx"));

  }
} 
 
我要的menu就出來了, 
然後就可以用RDLC自已去加一些分析的報表囉.
參考大師想的,看看要做哪些報表
BugNET 應用:從問題資料庫挖掘專案問題的線索
 
或是參考TFS Reporting Samples, 這就更專業了

2010/10/30,
網站已更新到0.8.25, 試著再把sitemap開啟,debug後,似乎進不了頁面?
SmartSiteMapProvider該如何使用呢?

所以,如想要新增tab menu, 也只好在 TabMenu.ascx.cs.Page_Load再加上一段

Tabs.Add(new Tab(GetLocalResourceObject("NewTab").ToString(), "~/NewTab/myPage.aspx"));


同時,也必需在BugNet_StringResources 加入一筆設定


insert into BugNet_StringResources
select 'UserControls/TabMenu.ascx','en','NewTab','NewTab'

2010年8月27日 星期五

手動安裝BugNet

前幾個月小玩了一下BugNet, 其實他有DotnetNuke的影子在.所以我使用起來覺得挺親切的

這是線上版,可以看看他的功能和操作介面

現在開始要記錄一個內部小專案的點滴, 所以打算用這套管理工具,同時打算升級到vs2010,方便做一些客製修改,以下是安裝過程

1.先到BugNet網站下載 source,目前版本為 0.8.193.0,  

已經有for vs2010的版本0.8.221.0, release date 2010/08/31,

修改source code  BugNET_WAP\BugNET_WAP.csproj,把UseIIS設成False, 所以步驟2-8都不用了

若要沿用原來0.8.1930的資料庫,不想執行install, 則將src\BugNET_WAP\Install\dbscripts\Latest.SqlDataProvider.sql直接執行
或者參考官網的升級步驟


若建立一個新的DB,則繼續 步驟9-13

2.解壓縮後,先將src\BugNET_WAP複製出來, 因為等等要升級到vs2010
3.點開src\BugNET.sln,用vs2008開啟,開啟時,系統會提示在IIS建立BugNet的虛擬目錄,開啟後,先rebuild solution,將會使用到的bin檔先準備好(因為直接用bin檔下的dll比較省事)
4.刪除IIS  BugNet的虛擬目錄
5.在vs2010開啟步驟2的目錄下的BugNET_WAP.csproj 專案檔 (來源是web application而不是web site project)
6.系統會再提示在IIS建立BugNet的虛擬目錄, 所以之前建立的虛擬目錄要先刪除
7.開啟後,將此專案的 Target framewpork版本改成3.5
8.接著Add Reference, 將vs2008 下的 src\BugNET_WAP\bin\ 除了BugNet.dll外都加入
9.rebuild 2010的專案


10.接著,開啟sql2008, 建一個空的Database名叫BugNet
11.回到vs2010專案, 打開web.config,將資料庫連線資訊修改一下,指到步驟10所建立的db server,可參考官網上的說明,第4點
12.展開專案目錄install, 找到 Install.aspx, 進行瀏覽
13.接著就開始執行資料庫物件建立,然後就大功告成了, 按登入用admin / password 登入即可,如以下的書面

IIS 網站無法下載中文檔名檔案因為取消高位元字元

 網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...