svn服務支援網頁顯示並增加線上預覽功能,支援視訊線上播放 kkFileView對接svn服務完成檔案線上預覽功能
1.svn伺服器支援網頁顯示
VisualSVN Server是一個非常不錯的SVN Server程式,方便,直觀,使用者管理也異常方便。不過,它本身並沒有提供線上修改密碼的功能。由於在實際使用過程中,一旦SVN的使用者比較多,只單單依靠windows的管理控制檯去修改密碼 顯然是不太合適的。總不能任何人想改個密碼還要通過管理員吧?所以,就想為其增加線上修改密碼的功能。
說實話,網上已經有了可以線上修改密碼的方法。試用過,也的確可以。不過一直苦於不知道svn密碼的加密演算法,也不太會呼叫dll(svn其實是使用的httpd的加密庫),不過後來機會來了,一不留神看了一下libapr-util的原始碼,呵呵,發現原來
先將寫好的程式放上來吧,稍候再把原始碼貼出來(嘿嘿,先賣賣關子)
首先把同文件夾裡面的內容copy到Visual SVN Server的安裝目錄下覆蓋掉同名的資料夾
接著,修改conf目錄下的httpd-custom.conf檔案, 把“ScriptAlias”一行後面的路徑修改為你的機器上的VisualSVN Server的實際路徑:
然後,修改cgi-bin目錄下的svnpass.ini檔案:
這是一個配置檔案,用來控制修改密碼的程式的。簡單解釋一下:
1: [PATH] 2: #下面這行用於指定svn的密碼檔案 3: pwdFilePath=htpasswd 4: 5: [ERRCODE] 6: #下面這些行用來指定當出現相應錯誤時的使用者提示 7: UnKnownErr=Unknown error 8: NoSuchUser=No Such User 9: IncorectOldPwd=Incorect old password 10: NewPwdNotMatch=New password not match 11: UserNameTooShort=Username is too short to go 12: UserNameTooLong=Username is too long to go 13: PwdTooShort=the Password is too short to go 14: PwdTooLong=the Password is too long to go 15: 16: [RULES] 17: # 下面這幾行用於控制使用者名稱的最小和最大長度,以及密碼的最小和最大長度 18: MinUserNameLen=1 19: MaxUserNameLen=20 20: MinPwdLen=1 21: MaxPwdLen=30
根據需要修改完畢之後(一般只需要修改pwdFilePath即可),重啟VisualSVN Server。開啟瀏覽器,會發現svn的介面有點不太一樣了:
點選左上角的“修改密碼”,即可在網頁的最上部彈出一個修改密碼的表單:
輸入密碼資訊之後,點選“確認修改”,即可實現密碼修改功能。如果資訊有誤,則會提示相應的資訊:
這些提示資訊都是在ini檔案裡定義的。
2.修改網頁介面增加預覽按鈕並呼叫kkFileView服務線上顯示檔案
修改htdocs目錄下svnindex.xsl檔案
1 <xsl:template match="file"> 2 <div class="file"> 3 <xsl:element name="a"> 4 <xsl:attribute name="href"> 5 <xsl:value-of select="@href"/> 6 </xsl:attribute> 7 8 <img src="/file.png"/> 9 <xsl:text> </xsl:text> 10 <xsl:value-of select="@name"/> 11 12 </xsl:element> 13 14 <xsl:element name="span"> 15 <xsl:text>  </xsl:text> 16 </xsl:element> 17 <xsl:element name="span"> 18 <xsl:text>  </xsl:text> 19 </xsl:element> 20 21 22 <xsl:element name="a"> 23 <xsl:attribute name="style"> 24 <xsl:text>color:green;text-decoration:none;</xsl:text> 25 </xsl:attribute> 26 <xsl:attribute name="href"> 27 <xsl:text>javascript:doPreview('</xsl:text> 28 <xsl:value-of select="@href"/> 29 <xsl:text>');void(0);</xsl:text> 30 </xsl:attribute> 31 <xsl:text>預覽</xsl:text> 32 33 </xsl:element> 34 35 36 37 </div> 38 </xsl:template>
22 <xsl:element name="a"> 23 <xsl:attribute name="style"> 24 <xsl:text>color:green;text-decoration:none;</xsl:text> 25 </xsl:attribute> 26 <xsl:attribute name="href"> 27 <xsl:text>javascript:doPreview('</xsl:text> 28 <xsl:value-of select="@href"/> 29 <xsl:text>');void(0);</xsl:text> 30 </xsl:attribute> 31 <xsl:text>預覽</xsl:text> 32 33 </xsl:element>
檔案svnAuth.js增加函式
1 function doPreview(a) 2 { 3 var location_url = window.location.href; 4 5 var url = location_url+a; 6 var pre_url = url + '?url.type=svn&svn.username=admin&s 7 vn.password=111111'; 8 window.open('http://198.0.0.0:8012/onlinePreview?url='+encode 9 URIComponent(Base64.encode(pre_url))); 10 console.log(pre_url); 11 }
網上下載base64.min.js引用下即可
效果如下: