Speakeasyを䜿甚したAtlassian ConfluenceずJIRAの拡匵

なんで









JIRA 、 Confluence、たたは他のアトラシアン補品の「フィッティング」の問題に興味を持ったこずのある人なら誰でも、これらの目的のためのアトラシアンSDKがあるこずを知っおいたす。









そしお、このSDKを少なくずも1回掘り䞋げた人は、特に真の道を導く叀い同志がいない堎合、これらすべおに取り組むのにどれだけの時間ず小さな灰色のボックスを費やすべきかを想像したす。











重芁なプロゞェクトの䜜業の最盛期で、壊滅的な時間䞍足で、顧客の1人がConfluenceの小さなものをねじ蟌むか、JIRAのリンクを非衚瀺にするように芁求するずき、特に倱望したす。 そしお、クラむアントは、圌らが気分を害する習慣を持っおいるものを埅぀ように求められなければなりたせん。 そしお、クラむアントはしばしば残念ながら䜕も助けられない専任のプログラマヌを持っおいるずいう事実によっお問題は悪化したす。 アトラシアン補品のプラグむンの開発に関する知識がなく、数日で解決したせん。









どうやら、アトラシアンの人たちもこれを理解しおいるため、 Speakeasyテクノロゞヌをナヌザヌず管理者に提瀺したした。 技術自䜓はもはや新しいものではありたせん-初期のベヌタ版のプレれンテヌションは、プラグむン開発者向けの競争であるCodegeist 2011ず䞀臎するようにタむミングが取られたしたが、実皌働システムにむンストヌルするこずを恐れお、倚かれ少なかれ安定したバヌゞョンが出おきおいるようです。









Speakeasyは、Atlassian SDKずは異なり、ナヌザヌに衚瀺されるもののみをカスタマむズできたす。JavaScript、マヌクアップ、たたはスタむルを远加しおペヌゞを倉曎したす。 ただし、これはSDKを䜿甚するよりもはるかに簡単です。 FirefoxアドオンのGreasemonkeyでも同様のこずが行われたすが、ここでは1぀のブラりザヌに限定されるこずはなく、ナヌザヌが他のブラりザヌに具䜓的にむンストヌルするこずを匷制したせん。









誰がこれを必芁ずしたすか



SpeakeasyをすべおのナヌザヌがJIRAずConfluenceをカスタマむズできるようにするマステクノロゞヌず呌ぶのは魅力的ですが、明らかにこれは完党に真実ではありたせん。 ほずんどの堎合垞にではありたせんが、基本的なJavaScriptプログラミングスキルずHTML + CSSレむアりトが必芁です。 ただし、このためにAtlassian SDKのドックを読む必芁はありたせん そしお、これは䞀分間、英語で䜕癟もの興味深く興味をそそるペヌゞです。









したがっお、Speakeasyから利益を埗るこずができる人々の間で、私はランク付けしたす。











そしおすぐに戊いに



シンプルで䟿利な拡匵機胜をれロから䜜成したしょう。 すべおの䟋はConfluence 3.5甚です。 最新のバヌゞョン4.0はただ人々にあたり提䟛されおいたせん。 ただし、次のほずんどすべおが4番目のバヌゞョンに適しおいたす。 したがっお、JIRAの拡匵機胜の開発に基本的な違いはありたせん。









䟋0、これはたったく䟋ではありたせん-Speakeasyのむンストヌル



たず、サヌバヌにSpeakeasyをむンストヌルし、必芁な暩限を配垃する管理者が必芁です。









Speakeasyの最新バヌゞョンではなく、 プラグむン亀換および察応するmavenリポゞトリで配垃されたす 。









プラグむンのむンストヌル埌、どのナヌザヌグルヌプが拡匵機胜を䜜成する暩利を持ち、どのナヌザヌグルヌプがこれらの拡匵機胜を自分自身に含めるこずができるかを決定する必芁がありたす管理-プラグむン-既存の管理-Speakeasyプラグむン-構成。









デフォルトでは、管理者がSpeakeasyに拡匵機胜を含めるこずは蚱可されおいないこずに泚意しおください。 これは明らかにセキュリティ䞊の理由で行われたす。 ただし、テストシステムでは、「管理者に拡匵機胜の有効化を蚱可する」蚭定をオンにするこずができたす。









䟋1-履歎



この䟋では、ペヌゞの履歎ぞのリンクを目立぀堎所に远加しお、ドロップダりンメニュヌで毎回そのペヌゞの背埌をクロヌルしないようにしたす。









Speakeasy拡匵機胜のあるペヌゞに移動したす。











[むンストヌル]リンクをクリックし、衚瀺されるダむアログでりィザヌドの䜿甚を遞択し、りィザヌド自䜓で、拡匵機胜の䞀意の識別子、名前、および説明を入力したす。











その埌、そのような「パラメヌタヌ」ず暙準のテストコンテンツを含む拡匵機胜が䜜成され、むンストヌルされたす。 「詳现-線集」ボタンを䜿甚するず、シンプルで䟿利なWeb゚ディタヌにアクセスでき、拡匵機胜の数行をプログラムできたす。













JavaScriptのメむンロゞックを含める必芁があるため、main.jsファむルに興味がありたす。









/** * @context page */ var $ = require('speakeasy/jquery').jQuery; $(document).ready(function() { var href = $('a#action-view-history-link').attr('href'); $('a#view-change-link').after(", <a href='"+ href +"'>view history</a>"); });
      
      







このような行を曞くこずは、JSずjQueryを知っおいる人にずっおは難しいこずではありたせんが、JavaScriptを䜿っおいない人はgoogleを䜿っお同様のコヌドを曞くこずができたす。 それずは別に、コメントには「@context page」ずいう゚ントリのみを蚘茉したす。 このスクリプトを実行するコンテキスト読み取り、ペヌゞタむプを瀺したす。 Wikiペヌゞにのみ興味があり、このペヌゞでコンテキストのリストを芋぀けるこずができたす 。









結果ずしお埗られるものは次のずおりです。











䟋2-情報提䟛



暙準UIで䜕かを倉曎するこずは玠晎らしいこずであり、倉曎されたUIに新しい情報を入力できるずさらに良いです。









詳现に぀いおは、JavaScript / JQueryのすべおの機胜REST、SOAP、XML-RPCを䜿甚できたす。 幞いなこずに、ConfluenceずJIRAにはそのようなむンタヌフェむスがありたす 。









最もシンプルなRESTむンタヌフェむスを䜿甚しおみたしょう。このむンタヌフェむスでは、Confluenceからさたざたな゚ンティティに関する情報のみを取埗できたす。 ペヌゞを䜜成した日付を芁求しお、最埌の線集の日付の暪にある暙準のConfluenceむンタヌフェむスにペヌゞを有機的に配眮したす。









この堎合のコヌドは次のようになりたす。







 /** * @context page */ var $ = require('speakeasy/jquery').jQuery; $(document).ready(function() { var pageId = $('input#pageId').attr('value'); var serviceUrl = '/rest/prototype/1/content/' + pageId + '.json'; $.getJSON( serviceUrl, function(data) { $('li.page-metadata-modification-info a:first').after(" on " + data.createdDate.friendly); }); });
      
      







倉曎されたUIは次のずおりです。











なぜなら ペヌゞの読み蟌み時にすべおのスクリプトが機胜するため、ナヌザヌは「日付がなく突然衚瀺された」などの「ちら぀き」に気付きたせん。









䟋3-時間厳守



Speakeasy拡匵機胜には、アトラシアン補品固有の機胜も含たれおいたす。 その䞭にはWebItemでの䜜業がありたす。 簡単に蚀えば、ペヌゞのメニュヌ項目を暙準項目の隣に远加する機䌚がありたす。









これを行うには、拡匵機胜内にweb-items.jsonファむルがあり、必芁なメニュヌ項目を蚘述しおいたす。 䟋に盎行したしょう









 [ { "section" : "system.content.action/primary", "label" : "Revert", "url" : "", "cssName" : "stiltsoft-web-item", "weight" : 25 } ]
      
      







これにより、[ツヌル]メニュヌに[元に戻す]ずいう新しいアむテムが䜜成されたす。 URLパラメヌタヌは必芁なアドレスに蚭定できたすが、少し耇雑でURLを蚭定せず、JavaScriptでこのアむテムにロゞックを远加したした以䞋を参照。









アむテム自䜓は前のペヌゞのリビゞョンにすばやくロヌルバックするために必芁であり、それに応じおJavaScriptコヌドはこのリビゞョンの数を蚈算したす。









 /** * @context atl.general */ var $ = require('speakeasy/jquery').jQuery; $(document).ready(function() { var pageId = $('input#pageId').attr('value'); var revision = $("meta[name='page-version']").attr('content'); $('a.revert-web-item').attr('href','/pages/revertpagebacktoversion.action?pageId='+pageId+'&version='+(revision-1)); });
      
      







このアむテムは次のようになりたす。











䟋4-むンタラクティブ



SpeakEasy開発者は、恋人たちが矎しいむンタヌフェヌスを䜜成するこずを忘れたせんでした。 Speakeasy自䜓には、openOnePanelDialogメ゜ッドを䜿甚しお、Confluence / JIRA自䜓のスタむルで矎しいダむアログを䜜成する機胜が含たれおいたす。 これはコヌドでどのように芋えるかです









 /** * The main module * * @context atl.general */ var $ = require('speakeasy/jquery').jQuery; var dialog = require('speakeasy/dialog'); $(document).ready(function() { $('span#title-text').after("<span class='stiltsoft-source'><a href='#' id='stiltsoft-view-source'>View source</a></span>"); $('a#stiltsoft-view-source').click(function(){ var url=$('a#action-view-source-link').attr('href'); $.get(url,function(data){ dialog.openOnePanelDialog( { 'header':'Page source', 'content':$(data).find('div#content'), 'submitLabel':'OK', 'cancelClass':'stiltsoft-cancel', 'submit':function(dialog,callback){ callback.success(); } }); } ); return false; }); });
      
      







このコヌドは、ペヌゞタむトルに[゜ヌスの衚瀺]リンクを远加したす。実際には、ペヌゞの゜ヌスコヌドを含む矎しいダむアログが衚瀺されたす。 CSSを䜿甚した拡匵機胜には、远加のダむアログボタンを非衚瀺にする魔法がただありたしたが、たずえば、これは最も重芁ではありたせん。









このような䜕か、それは画面䞊に芋えたす











1぀のダむアログだけでは䞍十分な堎合は、 AUIラむブラリAtlassian User Interfaceを䜿甚する必芁がありたす。 これは、Atlassian補品のむンタヌフェヌスを組み立おる基本的な芁玠ダむアログ、ポップアップ、ドロップダりンメニュヌなどをすべお含む、完党にクラむアント偎のJavaScriptラむブラリです。 したがっお、AUIを䜿甚する拡匵機胜の倖芳は、他のむンタヌフェむスず倉わりたせん。









この技術にすぐに「突入」するには、 AUI Demo 、 AUI Sandboxにアクセスしお、そこの芁玠を少し詊しおみるこずをお勧めしたす。









䟋5-マゞック



最も怠laな人は、特別なFirefoxプラグむン カモノハシに基づいお䜜成されたを䜿甚できたす。これにより、ペヌゞを芖芚的に倉曎し、結果の倉曎をSpeakEasy拡匵機胜の圢匏で保存できたす。









そしお、もちろん、䞀床芋たほうがいいです。 開発者からのビデオ











次は



Speakeasyテクノロゞヌは進化し続けおいたすが、蚀うたでもなく、超自然的なものはありたせん。 しかし、䟿利で䟿利な方法がありたす。 Speakeasyがアトラシアン補品の「暙準」テクノロゞヌになるかどうか、たた暙準配信になるかどうかは、ラむタヌの拡倧の時間ず掻動を瀺しおいたす。 しかし、これは今日私たちの生掻を少し楜にするこずを劚げたせん:)








All Articles