--- merged.diff 2009-09-29 08:33:39.000000000 +0000 +++ brion.diff 2009-09-29 08:37:04.000000000 +0000 @@ -1,23 +1,7 @@ -Index: skins/common/mwsuggest.js -=================================================================== ---- skins/common/mwsuggest.js (revision 57024) -+++ skins/common/mwsuggest.js (working copy) -@@ -840,6 +840,11 @@ - // remove descriptor - os_map[inputId] = null; - } -+ -+ // Remove the element from the os_autoload_* arrays -+ var index = os_autoload_inputs.indexOf(inputId); -+ if ( index >= 0 ) -+ os_autoload_inputs[index] = os_autoload_forms[index] = ''; - } - - /** Initialization, call upon page onload */ Index: extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.i18n.php =================================================================== ---- extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.i18n.php (revision 57024) -+++ extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.i18n.php (working copy) +--- extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.i18n.php (revision 57038) ++++ extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.i18n.php (revision 57039) @@ -21,8 +21,10 @@ /** Message documentation (Message documentation) * @author Bennylin @@ -114,8 +98,15 @@ ); /** Estonian (Eesti) -@@ -185,22 +198,34 @@ +@@ -180,27 +193,40 @@ + * @author Kobazulo + */ + $messages['eu'] = array( +- 'simplesearch' => 'Bilaketa sinplea', ++ 'simplesearch' => 'Bilaketa arrunta', + 'simplesearch-desc' => 'Funtzio gehiagarria gehitzen du Vector-en bilaketa erraztura', 'simplesearch-search' => 'Bilatu', ++ 'simplesearch-containing' => 'edukian...', ); +/** Persian (فارسی) @@ -149,7 +140,7 @@ ); /** Franco-Provençal (Arpetan) -@@ -218,8 +243,18 @@ +@@ -218,8 +244,18 @@ 'simplesearch' => 'Busca sinxela', 'simplesearch-desc' => 'Engade a funcionalidade adicional á busca simplificada do Vector', 'simplesearch-search' => 'Procurar', @@ -168,7 +159,7 @@ /** Swiss German (Alemannisch) * @author Als-Holder */ -@@ -227,6 +262,7 @@ +@@ -227,6 +263,7 @@ 'simplesearch' => 'Eifachi Suechi', 'simplesearch-desc' => 'Fiegt e extra Funktionswys zue dr vereifachte Suechi vum Vekter derzue', 'simplesearch-search' => 'Suechi', @@ -176,7 +167,7 @@ ); /** Hebrew (עברית) -@@ -235,8 +271,9 @@ +@@ -235,8 +272,9 @@ */ $messages['he'] = array( 'simplesearch' => 'חיפוש פשוט', @@ -187,7 +178,7 @@ ); /** Croatian (Hrvatski) -@@ -255,15 +292,18 @@ +@@ -255,15 +293,18 @@ 'simplesearch' => 'Jednore pytanje', 'simplesearch-desc' => 'Přidawa wosebitu funkcionalnosć k zjednorjenej pytanju Vectora.', 'simplesearch-search' => 'Pytać', @@ -206,7 +197,7 @@ ); /** Interlingua (Interlingua) -@@ -273,15 +313,18 @@ +@@ -273,15 +314,18 @@ 'simplesearch' => 'Recerca simple', 'simplesearch-desc' => 'Adde functionalitate extra al recerca simplificate del Vector', 'simplesearch-search' => 'Cercar', @@ -225,7 +216,7 @@ ); /** Italian (Italiano) -@@ -295,11 +338,13 @@ +@@ -295,11 +339,13 @@ /** Japanese (日本語) * @author Aotake @@ -239,7 +230,7 @@ ); /** Javanese (Basa Jawa) -@@ -343,6 +388,7 @@ +@@ -343,6 +389,7 @@ 'simplesearch' => 'Eifach Söhke', 'simplesearch-desc' => 'Deiht extra Müjjeleschkeijte beim „{{int:simplesearch}}“ vun de Bedeen-Bovverfläsh „Vektor“ bei.', 'simplesearch-search' => 'Söhke', @@ -247,7 +238,7 @@ ); /** Latin (Latina) -@@ -359,6 +405,7 @@ +@@ -359,6 +406,7 @@ 'simplesearch' => 'Einfach Sich', 'simplesearch-desc' => 'Setzt eng extra Fonctionalitéit bäi déi einfach Sich derbäi.', 'simplesearch-search' => 'Sich', @@ -255,7 +246,7 @@ ); /** Lithuanian (Lietuvių) -@@ -410,8 +457,17 @@ +@@ -410,8 +458,17 @@ 'simplesearch' => 'Eenvoudig zoeken', 'simplesearch-desc' => 'Voegt extra functionaliteit toe aan het vereenvoudigd zoeken in Vector', 'simplesearch-search' => 'Zoeken', @@ -273,7 +264,7 @@ /** Norwegian (bokmål) (Norsk (bokmål)) * @author Laaknor */ -@@ -428,15 +484,18 @@ +@@ -428,15 +485,18 @@ 'simplesearch' => 'Recèrca simpla', 'simplesearch-desc' => "Apond de foncionalitats a la recèrca simplificada de l'abilhatge Vector", 'simplesearch-search' => 'Recercar', @@ -292,7 +283,7 @@ ); /** Piedmontese (Piemontèis) -@@ -446,6 +505,7 @@ +@@ -446,6 +506,7 @@ 'simplesearch' => 'Arserca sempia', 'simplesearch-desc' => "A gionta funsionalità extra a l'arserca semplifià ëd Vector", 'simplesearch-search' => 'Arserca', @@ -300,7 +291,7 @@ ); /** Pontic (Ποντιακά) -@@ -466,12 +526,14 @@ +@@ -466,12 +527,14 @@ /** Portuguese (Português) * @author Giro720 @@ -315,7 +306,7 @@ ); /** Brazilian Portuguese (Português do Brasil) -@@ -507,15 +569,18 @@ +@@ -507,15 +570,18 @@ 'simplesearch' => 'Ricerca semblice', 'simplesearch-desc' => "Aggiunge 'na funzione extra a 'u vettore d'a ricerche semblificate", 'simplesearch-search' => 'Cirche', @@ -334,7 +325,7 @@ ); /** Yakut (Саха тыла) -@@ -525,6 +590,7 @@ +@@ -525,6 +591,7 @@ 'simplesearch' => 'Судургу көрдөөһүн', 'simplesearch-desc' => 'Vector диэн судургу көрдөөччүгэ эбии кыахтары биэрэр', 'simplesearch-search' => 'Көрдөөһүн', @@ -342,7 +333,7 @@ ); /** Sicilian (Sicilianu) -@@ -543,6 +609,7 @@ +@@ -543,6 +610,7 @@ 'simplesearch' => 'Jednoduché vyhľadávanie', 'simplesearch-desc' => 'Pridáva ďalšiu funkcionalitu k zjednodušenému vyhľadávaniu témy vzhľadu Vector', 'simplesearch-search' => 'Hľadať', @@ -350,7 +341,7 @@ ); /** Slovenian (Slovenščina) -@@ -555,11 +622,13 @@ +@@ -555,11 +623,13 @@ ); /** Serbian Cyrillic ekavian (Српски (ћирилица)) @@ -364,7 +355,7 @@ ); /** Serbian Latin ekavian (Srpski (latinica)) -@@ -585,6 +654,7 @@ +@@ -585,6 +655,7 @@ $messages['sw'] = array( 'simplesearch' => 'Tafuti sahili', 'simplesearch-search' => 'Kutafuta', @@ -372,7 +363,7 @@ ); /** Telugu (తెలుగు) -@@ -603,6 +673,7 @@ +@@ -603,6 +674,7 @@ 'simplesearch' => 'Basit arama', 'simplesearch-desc' => "Vector'un basitleştirilmiş aramasına ilave işlevler ekler", 'simplesearch-search' => 'Ara', @@ -380,7 +371,7 @@ ); /** Tatar (Cyrillic) (Татарча/Tatarça (Cyrillic)) -@@ -630,8 +701,19 @@ +@@ -630,8 +702,19 @@ 'simplesearch' => 'Riserca sènplise', 'simplesearch-desc' => 'Zonta funsionalità agiuntive a la riserca senplificà de Vector', 'simplesearch-search' => 'Serca', @@ -400,7 +391,7 @@ /** Vietnamese (Tiếng Việt) * @author Vinhtantran */ -@@ -639,8 +721,23 @@ +@@ -639,8 +722,23 @@ 'simplesearch' => 'Tìm kiếm đơn giản', 'simplesearch-desc' => 'Thêm chức năng phụ cho bộ tìm kiếm đơn giản của Bề ngoài Vector', 'simplesearch-search' => 'Tìm kiếm', @@ -426,8 +417,8 @@ */ Index: extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.js =================================================================== ---- extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.js (revision 57024) -+++ extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.js (working copy) +--- extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.js (revision 57038) ++++ extensions/UsabilityInitiative/SimpleSearch/SimpleSearch.js (revision 57039) @@ -80,27 +80,31 @@ render: function( query ) { var perfectMatch = false; @@ -473,8 +464,8 @@ select: function( $textbox ) { Index: extensions/UsabilityInitiative/combine.sh =================================================================== ---- extensions/UsabilityInitiative/combine.sh (revision 57024) -+++ extensions/UsabilityInitiative/combine.sh (working copy) +--- extensions/UsabilityInitiative/combine.sh (revision 57038) ++++ extensions/UsabilityInitiative/combine.sh (revision 57039) @@ -4,8 +4,8 @@ rm css/combined.* echo "Merging raw scripts and styles" @@ -488,8 +479,8 @@ # For more info on JSMin, see: http://www.crockford.com/javascript/jsmin.html Index: extensions/UsabilityInitiative/css/suggestions.css =================================================================== ---- extensions/UsabilityInitiative/css/suggestions.css (revision 57024) -+++ extensions/UsabilityInitiative/css/suggestions.css (working copy) +--- extensions/UsabilityInitiative/css/suggestions.css (revision 57038) ++++ extensions/UsabilityInitiative/css/suggestions.css (revision 57039) @@ -36,10 +36,13 @@ .suggestions-result { color: black; @@ -514,8 +505,8 @@ Index: extensions/UsabilityInitiative/css/wikiEditor.dialogs.css =================================================================== ---- extensions/UsabilityInitiative/css/wikiEditor.dialogs.css (revision 57024) -+++ extensions/UsabilityInitiative/css/wikiEditor.dialogs.css (working copy) +--- extensions/UsabilityInitiative/css/wikiEditor.dialogs.css (revision 57038) ++++ extensions/UsabilityInitiative/css/wikiEditor.dialogs.css (revision 57039) @@ -5,6 +5,6 @@ } @@ -526,8 +517,8 @@ } Index: extensions/UsabilityInitiative/css/combined.css =================================================================== ---- extensions/UsabilityInitiative/css/combined.css (revision 57024) -+++ extensions/UsabilityInitiative/css/combined.css (working copy) +--- extensions/UsabilityInitiative/css/combined.css (revision 57038) ++++ extensions/UsabilityInitiative/css/combined.css (revision 57039) @@ -36,10 +36,13 @@ .suggestions-result { color: black; @@ -555,8 +546,8 @@ /* wikiEditor toc module */ Index: extensions/UsabilityInitiative/css/combined.min.css =================================================================== ---- extensions/UsabilityInitiative/css/combined.min.css (revision 57024) -+++ extensions/UsabilityInitiative/css/combined.min.css (working copy) +--- extensions/UsabilityInitiative/css/combined.min.css (revision 57038) ++++ extensions/UsabilityInitiative/css/combined.min.css (revision 57039) @@ -34,10 +34,13 @@ .suggestions-result{ color:black; @@ -582,10 +573,17 @@ z-index:1099; } .wikiEditor-ui-text{ +@@ -445,4 +448,4 @@ + background-color:white; + text-decoration:none; + border-color:#a8d7f9; +-} +\ No newline at end of file ++} Index: extensions/UsabilityInitiative/OptIn/OptInLink.i18n.php =================================================================== ---- extensions/UsabilityInitiative/OptIn/OptInLink.i18n.php (revision 57024) -+++ extensions/UsabilityInitiative/OptIn/OptInLink.i18n.php (working copy) +--- extensions/UsabilityInitiative/OptIn/OptInLink.i18n.php (revision 57038) ++++ extensions/UsabilityInitiative/OptIn/OptInLink.i18n.php (revision 57039) @@ -139,8 +139,11 @@ */ $messages['da'] = array( @@ -784,8 +782,8 @@ * @author Vinhtantran Index: extensions/UsabilityInitiative/OptIn/OptIn.i18n.php =================================================================== ---- extensions/UsabilityInitiative/OptIn/OptIn.i18n.php (revision 57024) -+++ extensions/UsabilityInitiative/OptIn/OptIn.i18n.php (working copy) +--- extensions/UsabilityInitiative/OptIn/OptIn.i18n.php (revision 57038) ++++ extensions/UsabilityInitiative/OptIn/OptIn.i18n.php (revision 57039) @@ -194,7 +194,7 @@ 'optin-success-feedback' => 'شكرًا لك على ملاحظاتك!', 'optin-accept-short' => 'لنجربها!', @@ -836,7 +834,36 @@ 'optin-survey-yes' => 'Ναι', 'optin-survey-no' => 'Όχι', 'optin-survey-intro' => 'Ευχαριστούμε για την δοκιμή της Beta. -@@ -1397,6 +1405,25 @@ +@@ -1349,6 +1357,9 @@ + 'optin-feedback-intro' => 'Eskerrik asko Beta erabili izanagatik. + Jakin nahi dugu ea zer deritzozun interfaze berriaren inguruan, beraz asko gustatuko litzaiguke behean duzun hautazko inkesta beteko bazenu.', + 'optin-feedback-back' => 'Ez baduzu gure inkesta bete nahi, $1-(e)ra itzul zenezake.', ++ 'optin-success-in' => 'Beta bertsioa probatzen ari zara. ++Nahi baduzu atzera joan zintezke "{{int:option-leave}}" sakatuz orriaren goialdean.', ++ 'optin-leave-cancel' => 'Beta erabiltzen jarraitu nahi baduzu, $1-(e)ra itzul zaitezke.', + 'optin-success-out' => 'Betarik arrakastatsuko atera zara. + Nahi duzunean proba dezakezu berriro "{{int:optin-try}}" loturan klik eginda pantailaren goian eskuinaldean.', + 'optin-success-feedback' => 'Milesker zure feedbackarengatik!', +@@ -1372,12 +1383,18 @@ + 'optin-survey-answer-whyoptout-other' => 'Beste arrazoirik:', + 'optin-survey-question-explain' => 'Mesedez azaldu zure erantzuna behean:', + 'optin-survey-question-techfail' => 'Arazo teknikorik izan duzu Beta erabiltzean?', ++ 'optin-survey-question-techfail-ifyes' => 'Hala bada, mesedez azaldu:', ++ 'optin-survey-question-usedtoolbar' => 'Erabili al duzu tresna-barra tolesgarri berria orriak aldatzeko?', ++ 'optin-survey-question-usedtoolbar-ifyes' => 'Hala bada, zer gustatu zaizu? Zer ez zaizu gustatu?', ++ 'optin-survey-question-usedtoolbar-ifno' => 'Hala ez bada, zergatik ez? Erabiliko duzu? Azal iezaiguzu.', + 'optin-survey-question-different' => 'Zer egin genezakeen ezberdina zuk Beta erabiltzen jarraitzeko?', + 'optin-survey-question-browser' => 'Zein nabigatzaile erabiltzen duzu?', + 'optin-survey-answer-browser-other' => 'Beste nabigatzailerik:', + 'optin-survey-question-os' => 'Zein sistema eragile erabiltzen duzu?', + 'optin-survey-answer-os-other' => 'Beste sistema eragilerik:', + 'optin-survey-question-res' => 'Zein da zure pantailaren bereizmena?', ++ 'optin-survey-question-changes' => 'Zein aldaketa ikusi nahi zenituzke Betan aurrera begira (mesedez aukeratu nahi dituzunak)?', ++ 'optin-survey-answer-changes-nav' => 'Gunean nabigatzea errazten du.', + 'optin-survey-answer-changes-upload' => 'Edukiak eta artxiboen igoera hobetu.', + 'optin-survey-answer-changes-other' => 'Bestelakoak:', + 'optin-improvements' => '== Zer hobetu da? == +@@ -1397,6 +1414,25 @@ Milesker eta zure berri izateko irrikan gaude!', ); @@ -862,7 +889,7 @@ /** Finnish (Suomi) * @author Cimon Avaro * @author Crt -@@ -1668,6 +1695,7 @@ +@@ -1668,6 +1704,7 @@ ); /** Ancient Greek (Ἀρχαία ἑλληνικὴ) @@ -870,7 +897,7 @@ * @author Omnipaedista */ $messages['grc'] = array( -@@ -1675,6 +1703,7 @@ +@@ -1675,6 +1712,7 @@ 'optin-survey-no' => 'Οὐ', 'optin-survey-answer-whyoptout-other' => 'Αἰτία ἄλλη:', 'optin-survey-answer-os-other' => 'Ἄλλον λειτουργικὸν σύστημα:', @@ -878,7 +905,7 @@ ); /** Swiss German (Alemannisch) -@@ -1766,51 +1795,102 @@ +@@ -1766,51 +1804,102 @@ ); /** Hebrew (עברית) @@ -997,7 +1024,7 @@ /** Croatian (Hrvatski) * @author Suradnik13 */ -@@ -1976,6 +2056,7 @@ +@@ -1976,6 +2065,7 @@ * @author Hunyadym */ $messages['hu'] = array( @@ -1005,7 +1032,7 @@ 'optin-title-optedout' => 'A béta kipróbálása', 'optin-title-optedin' => 'Kilépés a bétából', 'optin-title-justoptedin' => 'Üdvözlünk a bétában', -@@ -1997,7 +2078,7 @@ +@@ -1997,7 +2087,7 @@ 'optin-submit-feedback' => 'Visszajelzés küldése', 'optin-survey-yes' => 'Igen', 'optin-survey-no' => 'Nem', @@ -1014,7 +1041,7 @@ 'optin-survey-answer-whyoptout-didntlike-layout' => 'Nem tetszenek az új fülek és az elrendezés.', 'optin-survey-answer-whyoptout-didntlike-toolbar' => 'Nem tetszik az új szerkesztő-eszköztár.', 'optin-survey-answer-whyoptout-other' => 'Más indok:', -@@ -2007,7 +2088,7 @@ +@@ -2007,7 +2097,7 @@ 'optin-improvements' => '== Mit fejlesztettünk? == [[File:UsabilityNavigation.png|left|link=]] ;Fejlettebb navigáció @@ -1023,7 +1050,7 @@
[[File:UsabilityToolbar.png|left|link=]] -@@ -2081,7 +2162,7 @@ +@@ -2081,7 +2171,7 @@ 'optin-survey-answer-changes-nav' => 'Rende le navigation general del sito plus facile a usar.', 'optin-survey-answer-changes-edittools' => 'Augmenta e meliora le instrumentos de modification.', 'optin-survey-answer-changes-upload' => 'Meliora le cargamento de contento e multimedia.', @@ -1032,7 +1059,7 @@ 'optin-survey-answer-changes-lookfeel' => 'Renova le apparentia general del sito.', 'optin-survey-answer-changes-predictability' => 'Meliorar le previsibilitate del prestationes.', 'optin-survey-answer-changes-custom' => 'Permitter un personalisation plus ample al usator.', -@@ -2119,7 +2200,7 @@ +@@ -2119,7 +2209,7 @@ 'optin-needlogin' => 'Anda harus [$1 masuk log] untuk mencoba Beta.', 'optin-intro' => 'Proyek Inisiatif Kebergunaan Wikipedia berusaha untuk mengembangkan kegunaan dari Wikipedia. Apakah Anda ingin mencoba Beta?', 'optin-feedback-intro' => 'Terima kasih telah mencoba Beta. @@ -1041,7 +1068,7 @@ 'optin-feedback-back' => 'Jika Anda tidak ingin mengisi survei, Anda dapat kembali ke $1.', 'optin-success-in' => 'Anda saat ini sedang mencoba Beta. Anda dapat keluar kapan saja dengan menekan pranala "{{int:optin-submit-out}}" di bagian atas halaman.', -@@ -2195,6 +2276,15 @@ +@@ -2195,6 +2285,15 @@ 'optin-survey-no' => 'No', ); @@ -1057,7 +1084,7 @@ /** Italian (Italiano) * @author Darth Kule * @author Melos -@@ -2202,8 +2292,8 @@ +@@ -2202,8 +2301,8 @@ * @author Stefano-c */ $messages['it'] = array( @@ -1068,7 +1095,7 @@ 'optin-title-optedout' => 'Prova la Beta', 'optin-title-optedin' => 'Lascia Beta', 'optin-title-justoptedin' => 'Benvenuto in Beta', -@@ -2211,7 +2301,7 @@ +@@ -2211,7 +2310,7 @@ 'optin-title-feedback' => 'Feedback della Beta', 'optin-needlogin' => "È necessario [$1 effettuare l'accesso] per provare Beta", 'optin-intro' => "Il progetto usabilità di Wikipedia sta lavorando intensamente per migliorare l'usabilità di Wikipedia. @@ -1077,7 +1104,7 @@ 'optin-feedback-intro' => 'Ti ringraziamo per aver provato la Beta. Vorremmo sapere cosa ne pensi della nostra nuova interfaccia, quindi apprezzeremmo se compilassi il sondaggio facoltativo qui sotto.', 'optin-feedback-back' => 'Se non si desidera compilare il sondaggio, si può tornare a $1.', -@@ -2274,7 +2364,7 @@ +@@ -2274,7 +2373,7 @@ Le icone nuove e migliorate rendono più chiare le azioni che ciascuno strumento esegue. Le sezioni espandibili riducono l\'ingombro mantenendo gli strumenti usati di rado a un clic di distanza. La sezione di aiuto fornisce un rapido accesso a un riferimento per gli usi comuni della sintassi wiki. == Come aiutare == @@ -1086,7 +1113,27 @@ Grazie; non vediamo l\'ora di sentirti.', ); -@@ -2712,6 +2802,13 @@ +@@ -2623,7 +2722,7 @@ + 'optin-intro' => 'De Usability Initiative vun de Wikipedia hät kräftesch jet draan jeärbeit, öm de Wikipedia besser zom Bedeene ze maache för de Metmaacher. + Wells De Beta ußprobeere?', + 'optin-feedback-intro' => 'Merci för et Ußprobeere. +-Mer wolle jähn weße, wat De vun uns Beta häls, ++Mer wolle jähn weße, wat De vun uns Beta häls, + un mer sin Der dangkbaa, wann De op di Froore heh + e paa Antwoote jävve dääts. Et koß nix, un verflich zoh nix.', + 'optin-feedback-back' => 'Wann De nix ußfölle wells, kanns De och noh $1 zerök jonn.', +@@ -2634,8 +2733,8 @@ + Do kanns emmer wider zerök kumme, endämm dat De op „{{int:optin-try}}“ klecks.', + 'optin-success-feedback' => 'Häzlijje Dangk för Ding Rökmäldung.', + 'optin-accept-short' => 'Lom_mer dat donn!', +- 'optin-accept-long' => 'Beta ußprobeere', +- 'optin-accept-long-anon' => 'Enlogge un de Beta ußprobeere', ++ 'optin-accept-long' => 'Beta ußprobeere', ++ 'optin-accept-long-anon' => 'Enlogge un de Beta ußprobeere', + 'optin-deny-short' => 'Nää, dat wulle mer nit', + 'optin-deny-long' => 'retuur op de vörijje Sigg', + 'optin-submit-out' => 'Beta verlohße', +@@ -2712,6 +2811,13 @@ Mer freue uns, vun Üsch ze hüüre!', ); @@ -1100,7 +1147,7 @@ /** Latin (Latina) * @author Omnipaedista */ -@@ -2737,7 +2834,7 @@ +@@ -2737,7 +2843,7 @@ 'optin-intro' => "D'Benotzerfrëndlechkeets-Initiative vu Wikipedia huet vill geschafft fir d'Benotzerfrëndlechkeet vu Wikipedia ze verbesseren. Wëllt Dir Beta ausprobéieren?", 'optin-feedback-intro' => 'Merci datt Dir Beta ausprobéiert hutt. @@ -1109,7 +1156,7 @@ 'optin-feedback-back' => "Wann Dir d'Ëmfro net ausfëlle wëllt, da kënnt dir op $1 zréckgoen.", 'optin-success-in' => 'Dir probéiert elo Beta aus. Dir kënnt dës zu jidder Zäit nees ausschalten andeem datt Dir op de Link "{{int:optin-leave}}" uewen um Ecran klickt.', -@@ -2757,7 +2854,7 @@ +@@ -2757,7 +2863,7 @@ 'optin-survey-intro' => 'Merci datt Dir Beta ausprobéiert. Mir wiere frou fir ze wëssen wat Dir vun deem neien Interface denkt, dofir wiere mir frou wann Dir déi fräiwëlleg Ëmfro hei ënnendrënner géift ausfëllen ier Dir op "[[#leave|{{int:optin-submit-out}}]]" klickt.', 'optin-survey-question-likedislike' => 'Wat hutt dir bäi Beta gutt finnt? Wat huet Iech u Beta net gefall?', @@ -1118,7 +1165,7 @@ 'optin-survey-answer-whyoptout-hard' => 'Et war ze komplizéiert fir ze benotzen.', 'optin-survey-answer-whyoptout-didntwork' => 'Et huet net richteg fonctionnéiert.', 'optin-survey-answer-whyoptout-notpredictable' => 'Et huet net esou fonctionnéiert wéi virgesinn.', -@@ -2951,18 +3048,59 @@ +@@ -2951,18 +3057,59 @@ /** Malayalam (മലയാളം) * @author Junaidpv @@ -1178,7 +1225,7 @@ ); /** Mongolian (Монгол) -@@ -3339,17 +3477,33 @@ +@@ -3339,17 +3486,33 @@ 'optin-title-justoptedout' => 'Takk for at du prøver betautgåva', 'optin-title-feedback' => 'Tilbakemelding om betautgåva', 'optin-needlogin' => 'Du må [$1 logga inn] for å prøve betautgåva.', @@ -1212,7 +1259,7 @@ ); /** Norwegian (bokmål) (Norsk (bokmål)) -@@ -3646,6 +3800,11 @@ +@@ -3646,6 +3809,11 @@ * @author Ahmed-Najib-Biabani-Ibrahimkhel */ $messages['ps'] = array( @@ -1224,7 +1271,7 @@ 'optin-survey-answer-whyoptout-other' => 'بل سبب:', 'optin-survey-question-browser' => 'تاسې کوم کتنمل کاروۍ؟', 'optin-survey-answer-browser-other' => 'بل کتنمل:', -@@ -3994,12 +4153,16 @@ +@@ -3994,12 +4162,16 @@ * @author HalanTul */ $messages['sah'] = array( @@ -1241,7 +1288,7 @@ 'optin-feedback-intro' => 'Beta-ны туттубуккар махтанабыт. Саҥа интерфейс туһунан туох санаалааххын билиэхпитин баҕарабыт, онон аллара баар ыйытыыларга хоруйдууруҥ буоллар наһаа үөрүө этибит.', 'optin-feedback-back' => 'Ыйытыкка кыттыаххын баҕарбат буоллаххына, төннүөххүн сөп $1.', -@@ -4728,6 +4891,21 @@ +@@ -4728,6 +4900,21 @@ Grassie e sperémo che ne riva presto qualche to messagio!', ); @@ -1265,8 +1312,8 @@ * @author Vinhtantran Index: extensions/UsabilityInitiative/NavigableTOC/NavigableTOC.i18n.php =================================================================== ---- extensions/UsabilityInitiative/NavigableTOC/NavigableTOC.i18n.php (revision 57024) -+++ extensions/UsabilityInitiative/NavigableTOC/NavigableTOC.i18n.php (working copy) +--- extensions/UsabilityInitiative/NavigableTOC/NavigableTOC.i18n.php (revision 57038) ++++ extensions/UsabilityInitiative/NavigableTOC/NavigableTOC.i18n.php (revision 57039) @@ -17,6 +17,13 @@ 'navigabletoc-preference' => 'Enable navigable table of contents', ); @@ -1522,8 +1569,8 @@ /** Yue (粵語) Index: extensions/UsabilityInitiative/UsabilityInitiative.i18n.php =================================================================== ---- extensions/UsabilityInitiative/UsabilityInitiative.i18n.php (revision 57024) -+++ extensions/UsabilityInitiative/UsabilityInitiative.i18n.php (working copy) +--- extensions/UsabilityInitiative/UsabilityInitiative.i18n.php (revision 57038) ++++ extensions/UsabilityInitiative/UsabilityInitiative.i18n.php (revision 57039) @@ -16,6 +16,13 @@ 'usabilityinitiative-desc' => 'Features developed by the Wikipedia Usability Initiative to enhance the usability of MediaWiki', ); @@ -1538,7 +1585,22 @@ /** Afrikaans (Afrikaans) * @author Naudefj */ -@@ -221,10 +228,11 @@ +@@ -42,6 +49,14 @@ + 'usabilityinitiative-desc' => 'Дапаўненьні распрацаваныя ў межах ініцыятывы па паляпшэньні зручнасьці і прастаты выкарыстаньня MediaWiki', + ); + ++/** Bengali (বাংলা) ++ * @author Bellayet ++ */ ++$messages['bn'] = array( ++ 'usabilityinitiative' => 'ইউজাবিলিটি ইনিসিয়েটিভ', ++ 'usabilityinitiative-desc' => 'মিডিয়াউইকি এর ব্যবহারযোগ্যতা বাড়াতে উইপিডিয়া ইউজাবিলিটি ইনিসিয়েটভ এ বৈশিষ্ট্যগুলোর উন্নয়ন করেছে', ++); ++ + /** Breton (Brezhoneg) + * @author Fulup + */ +@@ -221,10 +236,11 @@ /** Italian (Italiano) * @author Darth Kule @@ -1552,7 +1614,7 @@ ); /** Japanese (日本語) -@@ -265,7 +273,7 @@ +@@ -265,7 +281,7 @@ */ $messages['lb'] = array( 'usabilityinitiative' => "Initiativ fir d'Benotzerfrëndlechkeet", @@ -1561,7 +1623,7 @@ ); /** Lithuanian (Lietuvių) -@@ -373,6 +381,14 @@ +@@ -373,6 +389,14 @@ 'usabilityinitiative-desc' => 'Возможности движка MediaWiki, разработанные в рамках Инициативы юзабилити Википедии и направленные на улучшение его удобства и простоты использования', ); @@ -1576,7 +1638,7 @@ /** Slovak (Slovenčina) * @author Helix84 */ -@@ -422,6 +438,14 @@ +@@ -422,6 +446,14 @@ 'usabilityinitiative-desc' => "Carateristiche svilupà da l'Inissiativa par l'Usabilità de Wikipedia par mejorar l'usabilità de MediaWiki", ); @@ -1593,8 +1655,8 @@ */ Index: extensions/UsabilityInitiative/UsabilityInitiative.hooks.php =================================================================== ---- extensions/UsabilityInitiative/UsabilityInitiative.hooks.php (revision 57024) -+++ extensions/UsabilityInitiative/UsabilityInitiative.hooks.php (working copy) +--- extensions/UsabilityInitiative/UsabilityInitiative.hooks.php (revision 57038) ++++ extensions/UsabilityInitiative/UsabilityInitiative.hooks.php (revision 57039) @@ -18,7 +18,7 @@ private static $styleFiles = array( 'base_sets' => array( @@ -1665,11 +1727,427 @@ ), ), ); +Index: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.sql +=================================================================== +--- extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.sql (revision 0) ++++ extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.sql (revision 57039) +@@ -0,0 +1,19 @@ ++-- ++-- Schema for UserDailyContribs ++-- ++-- Used in clicktracking to determine how active the user is ++-- ++ ++CREATE TABLE IF NOT EXISTS /*_*/user_daily_contribs ( ++ -- user id ++ user_id integer NOT NULL default 0, ++ ++ -- day ++ day DATE NOT NULL, ++ ++ -- contributions on that day by that user ++ contribs integer NOT NULL default 0, ++ ++ -- a unique entry for a given user_id and day ++ PRIMARY KEY(user_id, day) ++) /*$wgDBTableOptions*/; +\ No newline at end of file + +Property changes on: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.sql +___________________________________________________________________ +Name: svn:eol-style + + native + +Index: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.i18n.php +=================================================================== +--- extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.i18n.php (revision 0) ++++ extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.i18n.php (revision 57039) +@@ -0,0 +1,236 @@ ++ 'User daily contributions for the click tracking extension', ++); ++ ++/** Message documentation (Message documentation) ++ * @author Purodha ++ * @author Raimond Spekking ++ */ ++$messages['qqq'] = array( ++ 'userdailycontribs-desc' => '{{desc}} ++"user" is a plural here.', ++); ++ ++/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) ++ * @author Jim-by ++ */ ++$messages['be-tarask'] = array( ++ 'userdailycontribs-desc' => 'Штодзённы ўнёсак удзельнікаў для пашырэньня сачэньня за націскамі мышшу', ++); ++ ++/** Bengali (বাংলা) ++ * @author Bellayet ++ */ ++$messages['bn'] = array( ++ 'userdailycontribs-desc' => 'ক্লিক ট্র্যাকিং এক্সটেশনের জন্য ব্যবহারকারীগণের দৈনিক অবদানসমূহ', ++); ++ ++/** Breton (Brezhoneg) ++ * @author Fulup ++ */ ++$messages['br'] = array( ++ 'userdailycontribs-desc' => "Degasadennoù pemdeziek dre implijer evit an astenn heuliañ ar c'hlikoù", ++); ++ ++/** Bosnian (Bosanski) ++ * @author CERminator ++ */ ++$messages['bs'] = array( ++ 'userdailycontribs-desc' => 'Dnevni doprinosi korisnka za proširenje praćenja klikova', ++); ++ ++/** German (Deutsch) ++ * @author Metalhead64 ++ */ ++$messages['de'] = array( ++ 'userdailycontribs-desc' => 'Benutzertagesbeiträge für die Klickverfolgungs-Erweiterung', ++); ++ ++/** Lower Sorbian (Dolnoserbski) ++ * @author Michawiki ++ */ ++$messages['dsb'] = array( ++ 'userdailycontribs-desc' => 'Wšědne wužywarske pśinoski za rozšyrjenje Clicktracking', ++); ++ ++/** Greek (Ελληνικά) ++ * @author Omnipaedista ++ */ ++$messages['el'] = array( ++ 'userdailycontribs-desc' => 'Ημερήσιες συνεισφορές χρήστη για την επέκταση παρακολούθησης κλικ', ++); ++ ++/** Esperanto (Esperanto) ++ * @author Yekrats ++ */ ++$messages['eo'] = array( ++ 'userdailycontribs-desc' => 'Ĉiutagaj kontribuoj de uzantoj por la klak-sekvada modulo.', ++); ++ ++/** French (Français) ++ * @author PieRRoMaN ++ */ ++$messages['fr'] = array( ++ 'userdailycontribs-desc' => "Contributions quotidiennes par utilisateur pour l'extension de suivi des clics", ++); ++ ++/** Galician (Galego) ++ * @author Toliño ++ */ ++$messages['gl'] = array( ++ 'userdailycontribs-desc' => 'Contribucións diarias por usuario para a extensión de seguimento de clics', ++); ++ ++/** Swiss German (Alemannisch) ++ * @author Als-Holder ++ */ ++$messages['gsw'] = array( ++ 'userdailycontribs-desc' => 'Tägligi Byytreg fir d Klickverfolgigs-Erwyterig verwände', ++); ++ ++/** Hebrew (עברית) ++ * @author Rotem Liss ++ */ ++$messages['he'] = array( ++ 'userdailycontribs-desc' => 'התרומה היומית של כל משתמש להרחבת מעקב הלחיצות', ++); ++ ++/** Upper Sorbian (Hornjoserbsce) ++ * @author Michawiki ++ */ ++$messages['hsb'] = array( ++ 'userdailycontribs-desc' => 'Wšědne wužiwarske přinoški za rozšěrjenje Clicktracking', ++); ++ ++/** Hungarian (Magyar) ++ * @author Glanthor Reviol ++ */ ++$messages['hu'] = array( ++ 'userdailycontribs-desc' => 'Felhasználók napi közreműködéseinek megjelenítése a kattintásszámlálóban', ++); ++ ++/** Interlingua (Interlingua) ++ * @author McDutchie ++ */ ++$messages['ia'] = array( ++ 'userdailycontribs-desc' => 'Contributiones quotidian de usatores pro le extension de traciamento de clics', ++); ++ ++/** Indonesian (Bahasa Indonesia) ++ * @author Bennylin ++ */ ++$messages['id'] = array( ++ 'userdailycontribs-desc' => 'Kontribusi harian pengguna untuk pengaya pelacak klik', ++); ++ ++/** Japanese (日本語) ++ * @author Fryed-peach ++ */ ++$messages['ja'] = array( ++ 'userdailycontribs-desc' => 'クリック追跡拡張機能のための利用者の一日あたりの投稿', ++); ++ ++/** Ripoarisch (Ripoarisch) ++ * @author Purodha ++ */ ++$messages['ksh'] = array( ++ 'userdailycontribs-desc' => 'De dääschlesch Beidrääsch vun de Metmacher, för de Wikipedia Usability Initiative ier Kleckverfolljung.', ++); ++ ++/** Luxembourgish (Lëtzebuergesch) ++ * @author Robby ++ */ ++$messages['lb'] = array( ++ 'userdailycontribs-desc' => "Ännerunge pro Dag a Bentzer fir d'Erweiderung vum Suivi vun de Clicken", ++); ++ ++/** Dutch (Nederlands) ++ * @author Siebrand ++ */ ++$messages['nl'] = array( ++ 'userdailycontribs-desc' => 'Dagelijkse gebruikersbijdragen voor de uitbreiding om gebruikerskliks mee te volgen', ++); ++ ++/** Occitan (Occitan) ++ * @author Cedric31 ++ */ ++$messages['oc'] = array( ++ 'userdailycontribs-desc' => "Contribucions jornalièras per utilizaire per l'extension de seguit dels clics", ++); ++ ++/** Polish (Polski) ++ * @author Sp5uhe ++ */ ++$messages['pl'] = array( ++ 'userdailycontribs-desc' => 'Codzienny wkład użytkowników wyśledzony przez rozszerzenie monitorujące kliknięcia', ++); ++ ++/** Piedmontese (Piemontèis) ++ * @author Dragonòt ++ */ ++$messages['pms'] = array( ++ 'userdailycontribs-desc' => "Contribussion giornaliere dl'utent për l'estension dla trassadura dij click", ++); ++ ++/** Tarandíne (Tarandíne) ++ * @author Joetaras ++ */ ++$messages['roa-tara'] = array( ++ 'userdailycontribs-desc' => "Utinde ca ogne sciurne condrebbuiscene pe 'u cazzaminde de l'estenzione de tracciamende", ++); ++ ++/** Russian (Русский) ++ * @author Александр Сигачёв ++ */ ++$messages['ru'] = array( ++ 'userdailycontribs-desc' => 'Ежедневный вклад участников для расширения отслеживания нажатий', ++); ++ ++/** Yakut (Саха тыла) ++ * @author HalanTul ++ */ ++$messages['sah'] = array( ++ 'userdailycontribs-desc' => 'Баттааһыны кэтиири кэҥэтэр кыттааччылар суруйууларын күнүнэн наардааһын', ++); ++ ++/** Slovak (Slovenčina) ++ * @author Helix84 ++ */ ++$messages['sk'] = array( ++ 'userdailycontribs-desc' => 'Denné príspevky používateľa rozšírenia na sledovanie kliknutí', ++); ++ ++/** Turkish (Türkçe) ++ * @author Joseph ++ */ ++$messages['tr'] = array( ++ 'userdailycontribs-desc' => 'Tıklama izleme eklentisi için günlük kullanıcı katkıları', ++); ++ ++/** Veps (Vepsan kel') ++ * @author Игорь Бродский ++ */ ++$messages['vep'] = array( ++ 'userdailycontribs-desc' => 'Jogapäiväline kävutajiden tond painmižid kaceltes', ++); ++ ++/** Vietnamese (Tiếng Việt) ++ * @author Vinhtantran ++ */ ++$messages['vi'] = array( ++ 'userdailycontribs-desc' => 'Đóng góp hàng ngày của thành viên dành cho bộ mở rộng theo dõi nhấn chuột', ++); ++ + +Property changes on: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.i18n.php +___________________________________________________________________ +Name: svn:eol-style + + native + +Index: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.php +=================================================================== +--- extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.php (revision 0) ++++ extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.php (revision 57039) +@@ -0,0 +1,43 @@ ++ ++ * @license GPL v2 or later ++ * @version 0.1.1 ++ */ ++ ++/* Configuration */ ++ ++// Credits ++$wgExtensionCredits['other'][] = array( ++ 'path' => __FILE__, ++ 'name' => 'User Daily Contributions', ++ 'author' => 'Nimish Gautam', ++ 'version' => '0.1.1', ++ 'url' => 'http://www.mediawiki.org/wiki/Extension:UsabilityInitiative', ++ 'descriptionmsg' => 'userdailycontribs-desc', ++); ++ ++// Includes parent extension ++require_once( dirname( dirname( __FILE__ ) ) . "/UsabilityInitiative.php" ); ++ ++// Adds Autoload Classes ++$dir = dirname( __FILE__ ) . '/'; ++$wgAutoloadClasses['UserDailyContribsHooks'] = $dir . 'UserDailyContribs.hooks.php'; ++ ++// Adds Internationalized Messages ++$wgExtensionMessagesFiles['UserDailyContribs'] = $dir . 'UserDailyContribs.i18n.php'; ++ ++// Hooked functions ++$wgHooks['LoadExtensionSchemaUpdates'][] = 'UserDailyContribsHooks::schema'; ++$wgHooks['ArticleSaveComplete'][] = 'UserDailyContribsHooks::storeNewContrib'; + +Property changes on: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.php +___________________________________________________________________ +Name: svn:eol-style + + native + +Index: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.hooks.php +=================================================================== +--- extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.hooks.php (revision 0) ++++ extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.hooks.php (revision 57039) +@@ -0,0 +1,47 @@ ++insert("user_daily_contribs", array("user_id" => $wgUser->getId(), "day" => $today, "contribs" => 1), __METHOD__); ++ } ++ catch(Exception $e){ ++ $dbw->update( "user_daily_contribs", array( "contribs" => "contribs+1"), array("user_id" => $wgUser->getId(), "day" => $today), __METHOD__); ++ } ++ */ ++ $sql = ++ "INSERT INTO user_daily_contribs (user_id,day,contribs) VALUES ({$wgUser->getId()},$today,1) ON DUPLICATE KEY UPDATE contribs=contribs+1;"; ++ $dbw->query($sql, __METHOD__); ++ return true; ++ } ++ ++} +\ No newline at end of file + +Property changes on: extensions/UsabilityInitiative/UserDailyContribs/UserDailyContribs.hooks.php +___________________________________________________________________ +Name: svn:eol-style + + native + +Index: extensions/UsabilityInitiative/ClickTracking/UserDailyContribs.sql +=================================================================== +--- extensions/UsabilityInitiative/ClickTracking/UserDailyContribs.sql (revision 57038) ++++ extensions/UsabilityInitiative/ClickTracking/UserDailyContribs.sql (revision 57039) +@@ -1,19 +0,0 @@ +--- +--- Schema for UserDailyContribs +--- +--- Used in clicktracking to determine how active the user is +--- +- +-CREATE TABLE IF NOT EXISTS /*_*/user_daily_contribs ( +- -- user id +- user_id integer NOT NULL default 0, +- +- -- day +- day DATE NOT NULL, +- +- -- contributions on that day by that user +- contribs integer NOT NULL default 0, +- +- -- a unique entry for a given user_id and day +- PRIMARY KEY(user_id, day) +-) /*$wgDBTableOptions*/; +\ No newline at end of file Index: extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.php =================================================================== ---- extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.php (revision 57024) -+++ extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.php (working copy) -@@ -7,18 +7,345 @@ +--- extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.php (revision 57038) ++++ extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.php (revision 57039) +@@ -7,18 +7,675 @@ */ class SpecialClickTracking extends SpecialPage { @@ -1678,11 +2156,13 @@ + private $top_results = 10; + private $normalize_top_results = false; + private $normalize_results = false; -+ private $use_timeframes = false; -+ private $begin_timeframe = '20090815'; //YYYYMMDD (+1 for today) ++ private $minimum_date = '20090815'; //YYYYMMDD (+1 for today) + private $end_timeframe = '20090902'; + + ++ private static $userTypes = array("basic" => 0, "intermediate" => 1, "expert" => 2); ++ private $user_defs = array(); ++ + //array of event_id => event_name + public static $join_conds = " LEFT JOIN click_tracking_events ON event_id=click_tracking_events.id"; + public static $expert_user_conds = "user_total_contribs > 10 "; @@ -1703,7 +2183,8 @@ + + function __construct() { - parent::__construct( 'ClickTracking' ); +- parent::__construct( 'ClickTracking' ); ++ parent::__construct( 'ClickTracking' , 'clicktrack'); wfLoadExtensionMessages( 'ClickTracking' ); + UsabilityInitiativeHooks::initialize(); + UsabilityInitiativeHooks::addStyle( 'ClickTracking/SpecialClickTracking.css' ); @@ -1714,6 +2195,33 @@ + + + ++ function setDefaults(){ ++ $this->user_defs["basic"] = array( ++ "anonymous" => "1", ++ "total_contribs" => array( ++ array("operation" => "<=", "value" => "1"), ++ ), ++ ); ++ ++ $this->user_defs["intermediate"] = array( ++ "anonymous" => "0", ++ "total_contribs" => array( ++ array("operation" => "<", "value" => "10"), ++ array("operation" => ">", "value" => "1"), ++ ), ++ ); ++ ++ $this->user_defs["expert"] = array( ++ "anonymous" => "0", ++ "total_contribs" => array( ++ array("operation" => ">=", "value" => "10"), ++ ), ++ ); ++ ++ ++ } ++ ++ + function execute( $par ) { - global $wgOut; @@ -1725,7 +2233,12 @@ + return; + } + ++ $this->setHeaders(); ++ $this->setDefaults(); ++ ++ $wgOut->addScript(''); ++ $wgOut->setPageTitle( wfMsg( 'clicktracking-title' ) ); + $outputTable =""; @@ -1744,17 +2257,17 @@ + //build row headers + $header_row = array(); + -+ $header_row["event_header"] = wfMsg( 'event-name' ); -+ $header_row["expert_header"] = wfMsg( 'expert-header' ); -+ $header_row["intermediate_header"] = wfMsg( 'intermediate-header' ); -+ $header_row["beginner_header"] = wfMsg( 'beginner-header' ); -+ $header_row["total_header"] = wfMsg( 'total-header' ); ++ $header_row["event_header"] = wfMsg( 'ct-event-name' ); ++ $header_row["expert_header"] = wfMsg( 'ct-expert-header' ); ++ $header_row["intermediate_header"] = wfMsg( 'ct-intermediate-header' ); ++ $header_row["beginner_header"] = wfMsg( 'ct-beginner-header' ); ++ $header_row["total_header"] = wfMsg( 'ct-total-header' ); + $outputTable .= Xml::buildTableRow( array( "class"=>"table_headers" ), $header_row ); + + //foreach event, build a row + while(($db_result = $events->fetchRow()) != null){ + ++$i; -+ $outputTable .= $this->buildRow( $db_result, $i ); ++ $outputTable .= $this->buildRow( $db_result, $i, $this->user_defs); + } + + @@ -1763,11 +2276,15 @@ + + $wgOut->addHTML( $outputTable ); + ++ $wgOut->addHTML($this->buildDateRange()); + + //build chart + $wgOut->addHTML($this->buildChart("advanced.hide",10, "20090815", "20090902", 1)); + -+ $wgOut->addHTML($this->buildControlBox()); ++ //$wgOut->addHTML($this->buildControlBox()); ++ ++ $wgOut->addHTML($this->buildChartDialog()); ++ $wgOut->addHTML($this->buildUserDefDialog()); + } + @@ -1778,17 +2295,52 @@ + * @param $minTime minimum day + * @param $maxTime maximum day + * @param $increment number of day(s) to increment in units ++ * @param $userDefs user defintions ++ * @param $isUserDefsJSON true if userDefs is JSON + * @return array with chart info + */ -+ static function getChartData($event_id, $minTime, $maxTime, $increment){ ++ static function getChartData($event_id, $minTime, $maxTime, $increment, $userDefs, $isUserDefsJSON=true){ + //get data + date_default_timezone_set('UTC'); + ++ if($maxTime == 0){ ++ $maxTime = gmdate("Ymd",time()); //today ++ } ++ if($minTime == 0){ ++ $minTime = self::$minimum_date; ++ } ++ ++ + //FIXME: On PHP 5.3+, this will be MUCH cleaner + $currBeginDate = new DateTime( $minTime ); + $currEndDate = new DateTime( $minTime ); + $endDate = new DateTime( $maxTime ); + ++ ++ //get user definitions ++ if($isUserDefsJSON){ ++ $userDefs = json_decode($userDefs, true); ++ } ++ ++ $userDefQueries = array(); ++ ++ foreach ($userDefs as $name => $def){ ++ if(!isset($def['total_contribs'])){ ++ $def['total_contribs'] = array(); ++ } ++ if(!isset($def['contrib_1'])){ ++ $def['contrib_1'] = array(); ++ } ++ if(!isset($def['contrib_2'])){ ++ $def['contrib_2'] = array(); ++ } ++ if(!isset($def['contrib_3'])){ ++ $def['contrib_3'] = array(); ++ } ++ $userDefQueries["$name"] = self::buildUserDefQuery($def['anonymous'], $def['total_contribs'], $def['contrib_1'], $def['contrib_2'], $def['contrib_3']); ++ } ++ ++ + $basicUserData = array(); + $intermediateUserData = array(); + $expertUserData = array(); @@ -1799,16 +2351,16 @@ + while( $currEndDate->format( "U" ) < $endDate->format( "U" ) ){ + $currEndDate->modify( "+$increment day$plural" ); + $time_constraints_statement = self::getTimeConstraintsStatement( $currBeginDate->format("Ymd"), $currEndDate->format("Ymd") ); -+ $basicUserData[] = self::getTableValue( $event_id, self::$basic_user_conds, $time_constraints_statement ); -+ $intermediateUserData[] = self::getTableValue( $event_id, self::$intermediate_user_conds, $time_constraints_statement ); -+ $expertUserData[] = self::getTableValue( $event_id, self::$expert_user_conds, $time_constraints_statement ); ++ $basicUserData[] = self::getTableValue( $event_id, $userDefQueries['basic'], $time_constraints_statement ); ++ $intermediateUserData[] = self::getTableValue( $event_id, $userDefQueries['intermediate'], $time_constraints_statement ); ++ $expertUserData[] = self::getTableValue( $event_id, $userDefQueries['expert'], $time_constraints_statement ); + $currBeginDate->modify( "+$increment day$plural" ); + } + return array("expert" => $expertUserData, "basic" => $basicUserData, "intermediate" => $intermediateUserData); + } + + function buildChart($event_name, $event_id, $minTime, $maxTime, $increment){ -+ $chartData = self::getChartData($event_id, $minTime, $maxTime, $increment); ++ $chartData = self::getChartData($event_id, $minTime, $maxTime, $increment, $this->user_defs, false); + $chartSrc = $this->getGoogleChartParams( $event_id, $event_name, $minTime, $maxTime, $chartData["basic"], $chartData["intermediate"], $chartData["expert"]); + return Xml::element( 'img', array( 'src' => $chartSrc , 'id' => 'chart_img' ) ); + } @@ -1831,17 +2383,197 @@ + } + + -+ function buildControlBox(){ ++ function buildUserDefDialog(){ ++ $control = ""; ++ $control .= Xml::openElement("div", array("id" => "user_def_dialog", "class" => "dialog")); + -+ $control = Xml::openElement("form", array("id" => "control_box_form")); -+ $control .= Xml::openElement("table", array("id" => "control_box_table")); -+ $control .= Xml::openElement("tbody", array("id" => "control_box_tbody")); ++ //currently editing...----| ++ $control .= Xml::openElement("form", array("id" => "user_definition_form", "class" => "user_def_form")); ++ $control .= Xml::openElement("fieldset", array("id" => "user_def_alter_fieldset")); ++ $control .= Xml::openElement("legend", array("id" => "user_def_alter_legend")); ++ $control .= wfMsg( "ct-editing" ); ++ $control .= Xml::closeElement("legend"); ++ ++ //[] anonymous users? ++ $control .= Xml::openElement("div", array("id" => "anon_users_div", "class" => "checkbox_div control_div")); ++ $control .= Xml::openElement("input", array("type" => "checkbox", "id" => "anon_users_checkbox", "class" => "user_def_checkbox")); ++ $control .= Xml::closeElement("input"); ++ $control .= wfMsg("ct-anon-users"); ++ $control .= Xml::closeElement("div"); ++ ++ // ---------------- ++ $control .= Xml::openElement("hr"); ++ $control .= Xml::closeElement("hr"); ++ $control .= Xml::openElement("div", array("id" => "contrib_opts_container")); ++ ++ // [] users with contributions [>=V] [n ] ++ $control .= Xml::openElement("div", array("id" => "total_users_contrib_div", "class" => "checkbox_div control_div")); ++ $control .= Xml::openElement("input", array("type" => "checkbox", "id" => "contrib_checkbox", "class" => "user_def_checkbox")); ++ $control .= Xml::closeElement("input"); ++ $control .= wfMsg("ct-user-contribs"); ++ ++ $control .= Xml::openElement("div", array("id" => "contrib_sub_div", "class" => "checkbox_div sub_option_div")); ++ $control .= $this->buildUserDefNumberSelect(false, false, "contrib_sub"); ++ $control .= Xml::closeElement("div"); ++ ++ $control .= Xml::closeElement("div"); ++ ++ // [] contributions in timespan 1 ++ // [] [>=V] [n ] ++ // [] AND [>=V] [n ] ++ $control .= Xml::openElement("div", array("id" => "contrib_span_1_div", "class" => "checkbox_div control_div")); ++ ++ $control .= Xml::openElement("div", array("id" => "contrib_span_1_text_div", "class" => "checkbox_div")); ++ $control .= Xml::openElement("input", array("type" => "checkbox", "id" => "contrib_span_1_checkbox", "class" => "user_def_checkbox")); ++ $control .= Xml::closeElement("input"); ++ $control .= wfMsg("ct-user-span") . " 1"; ++ $control .= Xml::closeElement("div"); ++ ++ $control .= Xml::openElement("div", array("id" => "contrib_span_1_range_1_div", "class" => "checkbox_div sub_option_div")); ++ $control .= $this->buildUserDefNumberSelect(true, false, "contrib_span_1_1"); ++ $control .= Xml::closeElement("div"); ++ ++ $control .= Xml::openElement("div", array("id" => "contrib_span_1_range_2_div", "class" => "checkbox_div sub_option_div")); ++ $control .= $this->buildUserDefNumberSelect(true, true, "contrib_span_1_2"); ++ $control .= Xml::closeElement("div"); ++ ++ $control .= Xml::closeElement("div"); ++ ++ $control .= Xml::closeElement("div");//close contrib opts ++ ++ $control .= Xml::closeElement("fieldset"); ++ $control .= Xml::closeElement("form"); ++ $control .= Xml::closeElement("div"); ++ return $control; ++ } ++ ++ ++ function buildUserDefNumberSelect($include_checkbox, $include_and, $ids){ ++ $control = ""; ++ if($include_checkbox){ ++ $control .= Xml::openElement("input", array("type" => "checkbox", "id" => "{$ids}_checkbox", "class" => "number_select_checkbox")); ++ $control .= Xml::closeElement("input"); ++ } ++ ++ if($include_and){ ++ $control .= wfMsg("ct-and"); ++ } ++ ++ $control .= Xml::openElement("select", array("id" => "{$ids}_ltgt", "class" => "number_select_ltgt")); ++ $control .= Xml::openElement("option", array("id" => "{$ids}_lt", "class" => "number_select_ltgt_opt", "value" => "lt")); ++ $control .= "<="; ++ $control .= Xml::closeElement("option"); ++ $control .= Xml::openElement("option", array("id" => "{$ids}_gt", "class" => "number_select_ltgt_opt", "value" => "gt")); ++ $control .= ">="; ++ $control .= Xml::closeElement("option"); ++ $control .= Xml::closeElement("select"); ++ $control .= Xml::openElement("input", array("type" => "text", "id" => "{$ids}_text", "class" => "number_select_text")); ++ $control .= Xml::closeElement("input"); ++ return $control; ++ } ++ ++ ++ function buildChartDialog(){ ++ $control = ""; ++ $control .= Xml::openElement("div", array("id" => "chart_dialog", "class" => "dialog")); ++ ++ $control .= Xml::openElement("form", array("id" => "chart_dialog_form", "class" => "chart_form")); ++ $control .= Xml::openElement("fieldset", array("id" => "chart_dialog_alter_fieldset")); ++ $control .= Xml::openElement("legend", array("id" => "chart_dialog_alter_legend")); ++ $control .= wfMsg( "ct-increment-by" ); ++ $control .= Xml::closeElement("legend"); ++ ++ $control .= Xml::openElement("table", array("id" => "chart_dialog_increment_table")); ++ $control .= Xml::openElement("tbody", array("id" => "chart_dialog_increment_tbody")); ++ ++ $control .= Xml::openElement("tr", array("id" => "chart_dialog_increment_row")); ++ ++ $control .= Xml::openElement("td", array("id" => "chart_dialog_increment_cell")); ++ $control .= Xml::openElement("input", array("type" => "text", "id" => "chart_increment", "class" => "chart_dialog_area", "value" => '1')); ++ $control .= Xml::closeElement("input"); ++ $control .= Xml::closeElement("td"); ++ ++ $control .= Xml::openElement("td", array("id" => "chart_dialog_button_cell")); ++ $control .= Xml::openElement("input", array("type" => "button", "id" => "change_graph", "value" => wfMsg( "ct-change-graph" ) ) ); ++ $control .= Xml::closeElement("input"); ++ $control .= Xml::closeElement("td"); ++ ++ $control .= Xml::closeElement("tr"); ++ ++ $control .= Xml::closeElement("tbody"); ++ $control .= Xml::closeElement("table"); ++ $control .= Xml::closeElement("fieldset"); ++ $control .= Xml::closeElement("form"); ++ $control .= Xml::closeElement("div"); ++ return $control; ++ } ++ ++ ++ function buildDateRange(){ ++ $control = Xml::openElement("form", array("id" => "date_range")); ++ ++ $control .= Xml::openElement("fieldset", array("id" => "date_range_fieldset")); ++ $control .= Xml::openElement("legend", array("id" => "date_range_legend")); ++ $control .= wfMsg('ct-date-range'); ++ $control .= Xml::closeElement("legend"); ++ + ++ ++ $control .= Xml::openElement("table", array("id" => "date_range_table")); ++ $control .= Xml::openElement("tbody", array("id" => "date_range_tbody")); ++ ++ ++ $control .= Xml::openElement("tr", array("id" => "start_date_row")); ++ ++ $control .= Xml::openElement("td", array("id" => "start_date_label", "class" => "date_range_label")); ++ $control .= Xml::openElement("input", array("type" => "checkbox", "id" => "start_date_checkbox", "class" => "date_range_checkbox", "checked" => "")); ++ $control .= Xml::closeElement("input"); ++ $control .= wfMsg( "ct-start-date" ); ++ $control .= Xml::closeElement("td"); ++ ++ $control .= Xml::openElement("td", array("id" => "start_date_textarea")); ++ $control .= Xml::openElement("input", array("type" => "text", "id" => "start_date", "class" => "date_range_input")); ++ $control .= Xml::closeElement("input"); ++ $control .= Xml::closeElement("td"); ++ ++ $control .= Xml::closeElement("tr"); ++ ++ $control .= Xml::openElement("tr", array("id" => "end_date_row")); ++ ++ $control .= Xml::openElement("td", array("id" => "end_date_label", "class" => "date_range_label")); ++ $control .= Xml::openElement("input", array("type" => "checkbox", "id" => "end_date_checkbox", "class" => "date_range_checkbox", "checked" => "")); ++ $control .= Xml::closeElement("input"); ++ $control .= wfMsg( "ct-end-date" ); ++ $control .= Xml::closeElement("td"); ++ ++ $control .= Xml::openElement("td", array("id" => "end_date_textarea")); ++ $control .= Xml::openElement("input", array("type" => "text", "id" => "end_date", "class" => "date_range_input")); ++ $control .= Xml::closeElement("input"); ++ $control .= Xml::closeElement("td"); ++ ++ $control .= Xml::closeElement("tr"); ++ ++ $control .= Xml::closeElement("tbody"); ++ $control .= Xml::closeElement("table"); ++ $control .= Xml::closeElement("fieldset"); ++ ++ $control .= Xml::closeElement("form"); ++ ++ return $control; ++ } ++ ++ ++ function buildControlBox(){ ++ ++ $control = Xml::openElement("form", array("id" => "control_box_form")); ++ $control .= Xml::openElement("table", array("id" => "control_box_table")); ++ $control .= Xml::openElement("tbody", array("id" => "control_box_tbody")); + + + $control .= Xml::openElement("tr", array("id" => "start_date_row")); + + $control .= Xml::openElement("td", array("id" => "start_date_label", "class" => "control_box_label")); -+ $control .= wfMsg( "start-date" ); ++ $control .= wfMsg( "ct-start-date" ); + $control .= Xml::closeElement("td"); + + $control .= Xml::openElement("td", array("id" => "start_date_textarea")); @@ -1850,13 +2582,13 @@ + $control .= Xml::closeElement("td"); + + $control .= Xml::closeElement("tr"); - ++ + + + $control .= Xml::openElement("tr", array("id" => "end_date_row")); + + $control .= Xml::openElement("td", array("id" => "end_date_label", "class" => "control_box_label")); -+ $control .= wfMsg( "end-date" ); ++ $control .= wfMsg( "ct-end-date" ); + $control .= Xml::closeElement("td"); + + $control .= Xml::openElement("td", array("id" => "end_date_textarea")); @@ -1871,7 +2603,7 @@ + $control .= Xml::openElement("tr", array("id" => "increment_date_row")); + + $control .= Xml::openElement("td", array("id" => "increment_date_label", "class" => "control_box_label")); -+ $control .= wfMsg( "increment-by" ); ++ $control .= wfMsg( "ct-increment-by" ); + $control .= Xml::closeElement("td"); + + $control .= Xml::openElement("td", array("id" => "increment_date_textarea")); @@ -1886,7 +2618,7 @@ + $control .= Xml::openElement("tr", array("id" => "change_graph_row")); + $control .= Xml::openElement("td", array("id" => "change_graph_cell", "colspan" => 2)); + -+ $control .= Xml::openElement("input", array("type" => "button", "id" => "change_graph", "value" => wfMsg( "change-graph" ) ) ); ++ $control .= Xml::openElement("input", array("type" => "button", "id" => "change_graph", "value" => wfMsg( "ct-change-graph" ) ) ); + $control .= Xml::closeElement("input"); + $control .= Xml::closeElement("td"); + @@ -1899,9 +2631,27 @@ + return $control; + } + ++ + -+ function buildRow($data_result, $row_count){ ++ function buildRow($data_result, $row_count, $userDefs){ + ++ $userDefQueries = array(); ++ foreach ($userDefs as $name => $def){ ++ if(!isset($def['total_contribs'])){ ++ $def['total_contribs'] = array(); ++ } ++ if(!isset($def['contrib_1'])){ ++ $def['contrib_1'] = array(); ++ } ++ if(!isset($def['contrib_2'])){ ++ $def['contrib_2'] = array(); ++ } ++ if(!isset($def['contrib_3'])){ ++ $def['contrib_3'] = array(); ++ } ++ $userDefQueries["$name"] = self::buildUserDefQuery($def['anonymous'], $def['total_contribs'], $def['contrib_1'], $def['contrib_2'], $def['contrib_3']); ++ } ++ + $outputRow = Xml::openElement("tr", array("class" => "table_data_row")); + + //event name @@ -1911,7 +2661,7 @@ + $outputRow .=Xml::closeElement("td"); + + //advanced users -+ $cellValue = self::getTableValue($data_result['event_id'], self::$expert_user_conds); ++ $cellValue = self::getTableValue($data_result['event_id'], $userDefQueries["expert"]); + $outputRow .=Xml::openElement("td", + array("class" => "event_data expert_data", "id" => "event_expert_$row_count", + "value" => $cellValue)); @@ -1919,7 +2669,7 @@ + $outputRow .=Xml::closeElement("td"); + + //intermediate users -+ $cellValue = self::getTableValue($data_result['event_id'], self::$intermediate_user_conds); ++ $cellValue = self::getTableValue($data_result['event_id'], $userDefQueries["intermediate"]); + $outputRow .=Xml::openElement("td", + array("class" => "event_data intermediate_data", "id" => "event_intermediate_$row_count", + "value" => $cellValue)); @@ -1927,7 +2677,7 @@ + $outputRow .=Xml::closeElement("td"); + + //basic users -+ $cellValue = self::getTableValue($data_result['event_id'], self::$basic_user_conds); ++ $cellValue = self::getTableValue($data_result['event_id'], $userDefQueries["basic"]); + $outputRow .=Xml::openElement("td", + array("class" => "event_data basic_data", "id" => "event_basic_$row_count", + "value" => $cellValue)); @@ -2008,7 +2758,7 @@ + + $and = ($time_constraint == "" ? "": "and"); + -+ $sql ="select count(*) from $normalize $where $time_constraint $and $user_conditions and event_id=$event_id"; ++ $sql ="select count(*) from $normalize $where $time_constraint $and ($user_conditions) and event_id=$event_id"; + + $dbr = wfGetDB( DB_SLAVE ); + $result = $dbr->query($sql); @@ -2016,12 +2766,71 @@ + return $resRow["count(*)"]; + } + ++ /** ++ * Generates a query for a user type definition ++ * @param $include_anon_users boolean, include anon users or not ++ * @param $total_contribs array, nonempty if total contribs to be included ++ * @param $contrib_1 array, nonempty AND conditions for user_contribs_1 ++ * @param $contrib_2 array, nonempty AND conditions for user_contribs_1 ++ * @param $contrib_3 array, nonempty AND conditions for user_contribs_1 ++ * @return unknown_type query ++ */ ++ static function buildUserDefQuery($include_anon_users, $total_contribs, $contrib_1, $contrib_2, $contrib_3){ ++ $or_conds = array(); ++ $and_conds = array(); ++ $sql = ""; ++ ++ if( (boolean)$include_anon_users ){ ++ $or_conds[] = array("field" => "is_logged_in", "operation" => "=", "value" =>"0"); ++ } ++ ++ if(!empty($total_contribs)){ ++ foreach($total_contribs as $contribs){ ++ $and_conds[] = array("field" => "user_total_contribs", "operation" => $contribs["operation"], "value" => $contribs["value"]); ++ } ++ } ++ ++ ++ if(!empty($contrib_1)){ ++ foreach($contrib_1 as $contribs){ ++ $and_conds[] = array("field" => "user_contribs_span1", "operation" => $contribs["operation"], "value" => $contribs["value"]); ++ } ++ } ++ if(!empty($contrib_2)){ ++ foreach($contrib_2 as $contribs){ ++ $and_conds[] = array("field" => "user_contribs_span2", "operation" => $contribs["operation"], "value" => $contribs["value"]); ++ } ++ } ++ if(!empty($contrib_3)){ ++ foreach($contrib_3 as $contribs){ ++ $and_conds[] = array("field" => "user_contribs_span3", "operation" => $contribs["operation"], "value" => $contribs["value"]); ++ } ++ } ++ ++ foreach($and_conds as $cond){ ++ if(!empty($sql)){ ++ $sql .= " AND "; ++ } ++ $sql .= $cond["field"] . " " . $cond["operation"] . " " . $cond["value"]; ++ } ++ foreach($or_conds as $cond){ ++ if(!empty($sql)){ ++ $sql .= " OR "; ++ } ++ $sql .= $cond["field"] . " " . $cond["operation"] . " " . $cond["value"]; ++ } ++ ++ return $sql; ++ } ++ ++ ++ } \ No newline at end of file Index: extensions/UsabilityInitiative/ClickTracking/ClickTracking.hooks.php =================================================================== ---- extensions/UsabilityInitiative/ClickTracking/ClickTracking.hooks.php (revision 57024) -+++ extensions/UsabilityInitiative/ClickTracking/ClickTracking.hooks.php (working copy) +--- extensions/UsabilityInitiative/ClickTracking/ClickTracking.hooks.php (revision 57038) ++++ extensions/UsabilityInitiative/ClickTracking/ClickTracking.hooks.php (revision 57039) @@ -23,11 +23,6 @@ ); @@ -2034,6 +2843,30 @@ 'click_tracking_events', dirname( __FILE__ ) . '/ClickTrackingEvents.sql' ); +@@ -55,6 +50,8 @@ + * Adds JavaScript + */ + public static function addJS(){ ++ global $wgOut; ++ + UsabilityInitiativeHooks::initialize(); + UsabilityInitiativeHooks::addScript( 'ClickTracking/ClickTracking.js' ); + UsabilityInitiativeHooks::addVariables( +@@ -62,11 +59,9 @@ + 'wgTrackingToken' => ClickTrackingHooks::get_session_id() + ) + ); +- UsabilityInitiativeHooks::addVariables( +- array( +- 'wgClickTrackingIsThrottled' => ClickTrackingHooks::isUserThrottled() +- ) +- ); ++ //need a literal false, not "false" to be output, to work prperly ++ $userThrottle = ClickTrackingHooks::isUserThrottled(); ++ $wgOut->addScript(""); + + return true; + @@ -112,20 +107,6 @@ return $edits; } @@ -2055,93 +2888,670 @@ /** * Get event ID from name -Index: extensions/UsabilityInitiative/ClickTracking/UserDailyContribs.sql +Index: extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.css =================================================================== ---- extensions/UsabilityInitiative/ClickTracking/UserDailyContribs.sql (revision 57024) -+++ extensions/UsabilityInitiative/ClickTracking/UserDailyContribs.sql (working copy) -@@ -1,19 +0,0 @@ ---- ---- Schema for UserDailyContribs ---- ---- Used in clicktracking to determine how active the user is ---- -- --CREATE TABLE IF NOT EXISTS /*_*/user_daily_contribs ( -- -- user id -- user_id integer NOT NULL default 0, -- -- -- day -- day DATE NOT NULL, -- -- -- contributions on that day by that user -- contribs integer NOT NULL default 0, -- -- -- a unique entry for a given user_id and day -- PRIMARY KEY(user_id, day) --) /*$wgDBTableOptions*/; +--- extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.css (revision 0) ++++ extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.css (revision 57039) +@@ -0,0 +1,56 @@ ++@CHARSET "UTF-8"; ++ ++.table_headers{ ++ font-weight: bold; ++ border: bottom; ++} ++ ++.table_data_row{ ++ text-align: center; ++} ++ ++.table_data_row .event_name{ ++ text-align: left; ++ font-weight: bold; ++} ++ ++#clicktrack_data_table { ++ float: left; ++} ++ ++#chart_img { ++ float: left; ++ margin-left: 90px; ++} ++ ++#change_graph_cell { ++ text-align: right; ++} ++ ++.disabled_option { ++ color: #999999; ++} ++ ++.hidden { ++ display: none; ++} ++ ++.control_div { ++ margin: 10px; ++} ++ ++.sub_option_div{ ++ margin-top: 4px; ++ margin-left: 15px; ++} ++ ++.sub_option_div input[type="text"]{ ++ width: 20px; ++ margin-left: 10px; ++} ++ ++#date_range{ ++ display:inline; ++ float:left; ++ width:200px; ++} +\ No newline at end of file + +Property changes on: extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.css +___________________________________________________________________ +Name: svn:eol-style + + native + +Index: extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.js +=================================================================== +--- extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.js (revision 0) ++++ extensions/UsabilityInitiative/ClickTracking/SpecialClickTracking.js (revision 57039) +@@ -0,0 +1,383 @@ ++(function($) { ++ ++ $.renderUserDefDialogWith = function (userDef, defName){ ++ //change name ++ $("#user_def_alter_legend").text($("#user_def_alter_legend").data("defaultChangeText") + " " + defName); ++ $("#user_def_alter_legend").data("currentlyEditing", defName); ++ ++ var setContribs = function(conditionArray, contribName){ ++ ++ initialDiv = $("