JetBrains के लोग अपने शानदार कंटिन्यूअस इंटीग्रेशन
टीमसिटी सर्वर के साथ हमें खुश करते हैं। इस तरह के सर्वर के सबसे महत्वपूर्ण कार्यों में से एक बहुत तेज़ प्रतिक्रिया है, जिसे टीमसिटी बहुत अच्छा काम करता है। बॉक्स में कई नोटिफ़ायर हैं (IntelliJ Platform plugin, Windows Tray Notifier, Addin for Visual Studio, Eclipse Plugin, Syndication Feed) और यह प्रोग्रामर्स के लिए पर्याप्त है। हमारे परीक्षण विभाग को बिल्ड की स्थिति देखने के लिए आइडिया और इसी तरह की "भयानक चीजों" को लॉन्च करने की कोई इच्छा नहीं है।
चूंकि हम मुख्य रूप से वेब प्रोजेक्ट्स और टेस्टर का उपयोग करते हैं, इसलिए हमारे काम का 60% समय ब्राउज़र का उपयोग करता है, यह असेंबली की निगरानी के लिए एक छोटा सा विस्तार लिखने की कोशिश करना तर्कसंगत होगा।
एक्सटेंशन, अपने कोड की तरह, बोनस का दावा नहीं करता है।
स्रोत + पैकेजमुख्य विचार यह है कि हम असेंबली स्टेटस के लिए CI सर्वर को पोल करते हैं और टूटे हुए लोगों के मामले में हम एक्सटेंशन आइकन के बगल में एक लाल नंबर खींचते हैं, जो निस्संदेह ध्यान आकर्षित करेगा। सब कुछ काफी सरल है।
manifest.json। यहां सब कुछ मानक है।
{ "background_page": "background.html", "browser_action": { "default_icon": "images/icon19.png", "default_title": "TeamCity Checker", "popup": "popup.html" }, "description": "Team City Checker Extension", "icons": { "128": "images/icon128.png", "16": "images/icon16.png", "32": "images/icon32.png", "48": "images/icon48.png" }, "name": "TeamCity Checker", "options_page": "options.html", "permissions": [ "http://*/", "tabs" ], "version": "1.1" }
अगला कदम option.html एक्सटेंशन के लिए एक सेटिंग पृष्ठ बनाना है।
<html> <head> <title>TeamCity Checker</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > <meta http-equiv="Content-Language" content="ru-RU" > <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/options.js"></script> </head> <body onload="restore_options()"> <table> <tr> <td><img src="images/icon128.png" style="width:64px" /></td> <td style="padding-left:15px;"> URL TeamCity Server ( , http://192.168.0.2:8111):<br /> <input id="server" type="text" style="width:500px" value="" /> <br /> Timeout: <br /> <select id="timeout"> <option value="5">5 sec.</option> <option value="10" selected>10 sec.</option> <option value="15">15 sec.</option> <option value="30">30 sec.</option> <option value="60">60 sec.</option> </select> <br /> <button onclick="save_options()"></button> </td> </tr> </table> </body> </html>
अगला, हम Options.js एक्सटेंशन सेटिंग्स हैंडलर लिखते हैं
function save_options() { localStorage["server"] = $("#server").val(); localStorage["timeout"] = $("#timeout").val(); chrome.extension.getBackgroundPage().init(); } function restore_options() { var server = localStorage["server"], timeout = localStorage["timeout"]; if (!server) return; $("#server").val(server); $("#timeout [value='" + timeout + "']").attr("selected", "selected"); }
एक्सटेंशन आइकन पर क्लिक करके पॉप-अप हैंडलर
function iResize() { var iFrames = $('iframe'); for (var i = 0, j = iFrames.length; i < j; i++) { iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 250 + 'px'; iFrames[i].style.width = iFrames[i].contentWindow.document.body.offsetWidth + 20 + 'px'; } } function loading() { var server = localStorage["server"]; if (server) { if(server[server.length - 1] != "/") server = server + "/"; jQuery('#status').html(jQuery('<iframe\>').attr({'src': server + 'externalStatus.html?withCss=true', 'height':'auto', 'scrolling':'yes', 'frameborder':'0'})); iResize(); } }
Background.js फ़ाइल बहुत काम करती है। उसे यहाँ लाओ मैं बात नहीं देखता। चूंकि यह काफी बड़ा है। और उतना ही यह स्रोत में है।
मैं सिर्फ इतना कहूंगा कि उनका एक कार्य टूटी हुई विधानसभाओं पर आंकड़े प्राप्त करना और उपयोगकर्ता को इस घटना के बारे में सूचित करना है।
और अब हमारे विस्तार में प्रदर्शन के लिए सीधे विधानसभा सेटिंग्स पर जाएं। ऐसा करने के लिए, आपको व्यवस्थापक अधिकारों के साथ टीम सिटी में लॉग इन करना होगा, असेंबली की मूल सेटिंग्स को संपादित करना होगा जिसे आप प्रदर्शित करना चाहते हैं, और "बिल्ड विकल्प" अनुभाग में सक्षम स्थिति विजेट मेनू की जांच करें। खैर, अब आप हब्बर पढ़ने से विचलित हुए बिना हमारी विधानसभाओं की स्थिति की निगरानी कर सकते हैं!
यह वही है जो सेटिंग पृष्ठ जैसा दिखता है

और इसलिए पॉपअप विंडो

हम देखते हैं कि एक विधानसभा टूट गई :(
इसके अलावा पॉप-अप विंडो में त्वरित डाउनलोड के लिए कलाकृतियों के लिंक रखे गए हैं।
हम किसी भी आलोचना और सुझाव को स्वीकार करते हैं।
ps इस विस्तार से लिखने वाले हमारे परीक्षक अर्टिओम ट्यूरिन को बहुत-बहुत धन्यवाद।