Index: trunk/extensions/UsabilityInitiative/OptIn/OptIn.php |
— | — | @@ -28,7 +28,7 @@ |
29 | 29 | $wgOptInAlwaysShowPersonalLink = false; |
30 | 30 | $wgOptInNeverShowPersonalLink = false; |
31 | 31 | |
32 | | -$wgOptInStyleVersion = 5; |
| 32 | +$wgOptInStyleVersion = 6; |
33 | 33 | |
34 | 34 | // Preferences to set when users opt in |
35 | 35 | // array( prefname => value ) |
— | — | @@ -90,6 +90,24 @@ |
91 | 91 | 'type' => 'resolution' ), |
92 | 92 | ); |
93 | 93 | |
| 94 | +$wgOptInFeedBackSurvey = $wgOptInSurvey; |
| 95 | +unset( $wgOptInFeedBackSurvey[1] ); |
| 96 | +unset( $wgOptInFeedBackSurvey[2] ); |
| 97 | +$wgOptInFeedBackSurvey[4]['ifno'] = 'optin-survey-question-usedtoolbar-ifno'; |
| 98 | +$wgOptInFeedBackSurvey[5] = array( |
| 99 | + 'question' => 'optin-survey-question-changes', |
| 100 | + 'type' => 'checkboxes', |
| 101 | + 'answers' => array( |
| 102 | + 'optin-survey-answer-changes-nav', |
| 103 | + 'optin-survey-answer-changes-edittools', |
| 104 | + 'optin-survey-answer-changes-upload', |
| 105 | + 'optin-survey-answer-changes-richtext', |
| 106 | + 'optin-survey-answer-changes-lookfeel', |
| 107 | + 'optin-survey-answer-changes-predictability', |
| 108 | + 'optin-survey-answer-changes-compat' ), |
| 109 | + 'other' => 'optin-survey-answer-changes-other' |
| 110 | +); |
| 111 | + |
94 | 112 | /* Setup */ |
95 | 113 | |
96 | 114 | // Credits |
Index: trunk/extensions/UsabilityInitiative/OptIn/SpecialOptIn.php |
— | — | @@ -58,7 +58,8 @@ |
59 | 59 | } |
60 | 60 | |
61 | 61 | public function execute( $par ) { |
62 | | - global $wgRequest, $wgOut, $wgUser; |
| 62 | + global $wgRequest, $wgOut, $wgUser, $wgOptInSurvey; |
| 63 | + global $wgOptInFeedBackSurvey; |
63 | 64 | |
64 | 65 | $par = $wgRequest->getVal( 'from', $par ); |
65 | 66 | $this->mOriginTitle = Title::newFromText( $par ); |
— | — | @@ -77,6 +78,9 @@ |
78 | 79 | if ( $wgRequest->getVal( 'opt' ) == 'out' ) |
79 | 80 | // Just opted out |
80 | 81 | $wgOut->setPageTitle( wfMsg( 'optin-title-justoptedout' ) ); |
| 82 | + else if ( $wgRequest->getVal( 'opt' ) == 'feedback' ) |
| 83 | + // Giving feedback |
| 84 | + $wgOut->setPageTitle( wfMsg( 'optin-title-feedback' ) ); |
81 | 85 | else |
82 | 86 | // About to opt out |
83 | 87 | $wgOut->setPageTitle( wfMsg( 'optin-title-optedin' ) ); |
— | — | @@ -95,9 +99,16 @@ |
96 | 100 | if ( $wgRequest->getVal( 'opt' ) === 'in' ) { |
97 | 101 | self::optIn( $wgUser ); |
98 | 102 | $wgOut->addWikiMsg( 'optin-success-in' ); |
| 103 | + } else if ( $wgRequest->getVal( 'opt' ) == 'feedback' ) { |
| 104 | + if ( $wgRequest->wasPosted() ) { |
| 105 | + $this->saveSurvey( $wgOptInFeedBackSurvey, |
| 106 | + 'feedback' ); |
| 107 | + $wgOut->addWikiMsg( 'optin-success-feedback' ); |
| 108 | + } else |
| 109 | + $this->showForm( 'feedback' ); |
99 | 110 | } else { |
100 | 111 | self::optOut( $wgUser ); |
101 | | - $this->saveSurvey(); |
| 112 | + $this->saveSurvey( $wgOptInSurvey, 'out' ); |
102 | 113 | $wgOut->addWikiMsg( 'optin-success-out' ); |
103 | 114 | } |
104 | 115 | if ( $this->mOriginTitle ) |
— | — | @@ -105,24 +116,30 @@ |
106 | 117 | $this->mOriginLink ) ); |
107 | 118 | } |
108 | 119 | else |
109 | | - $this->showForm(); |
| 120 | + $this->showForm( self::isOptedIn( $wgUser ) ? |
| 121 | + 'out' : 'in' ); |
110 | 122 | } |
111 | 123 | |
112 | 124 | /* Private Functions */ |
113 | 125 | |
114 | | - private function showForm() { |
115 | | - global $wgUser, $wgOut; |
| 126 | + private function showForm( $opt ) { |
| 127 | + global $wgUser, $wgOut, $wgOptInSurvey, $wgOptInFeedBackSurvey; |
116 | 128 | |
117 | | - $opt = ( self::isOptedIn( $wgUser ) ? 'out' : 'in' ); |
118 | 129 | if ( $opt == 'out' ) { |
119 | 130 | $wgOut->addWikiMsg( 'optin-survey-intro' ); |
120 | 131 | if ( $this->mOriginTitle ) |
121 | 132 | $wgOut->addHTML( wfMsg( 'optin-leave-cancel', |
122 | 133 | $this->mOriginLink ) ); |
123 | | - $this->showSurvey(); |
124 | | - } |
125 | | - else |
126 | | - { |
| 134 | + $this->showSurvey( $wgOptInSurvey, |
| 135 | + 'optin-submit-out', 'out' ); |
| 136 | + } else if ( $opt == 'feedback' ) { |
| 137 | + $wgOut->addWikiMsg( 'optin-feedback-intro' ); |
| 138 | + if ( $this->mOriginTitle ) |
| 139 | + $wgOut->addHTML( wfMsg( 'optin-feedback-back', |
| 140 | + $this->mOriginLink ) ); |
| 141 | + $this->showSurvey( $wgOptInFeedBackSurvey, |
| 142 | + 'optin-submit-feedback', 'feedback', true ); |
| 143 | + } else { |
127 | 144 | $wgOut->wrapWikiMsg( |
128 | 145 | "<div class='optin-intro'>\n$1\n</div>", |
129 | 146 | array( 'optin-intro' ) |
— | — | @@ -208,8 +225,8 @@ |
209 | 226 | ); |
210 | 227 | } |
211 | 228 | |
212 | | - private function showSurvey() { |
213 | | - global $wgOptInSurvey, $wgOut, $wgOptInStyleVersion; |
| 229 | + private function showSurvey( $survey, $submitMsg, $opt, $loadFromDB = false ) { |
| 230 | + global $wgUser, $wgOut, $wgOptInStyleVersion; |
214 | 231 | |
215 | 232 | UsabilityInitiativeHooks::initialize(); |
216 | 233 | UsabilityInitiativeHooks::addScript( 'OptIn/OptIn.js', |
— | — | @@ -217,6 +234,21 @@ |
218 | 235 | UsabilityInitiativeHooks::addStyle( 'OptIn/OptIn.css', |
219 | 236 | $wgOptInStyleVersion ); |
220 | 237 | |
| 238 | + $loaded = array(); |
| 239 | + if ( $loadFromDB ) { |
| 240 | + $dbr = wfGetDb( DB_SLAVE ); |
| 241 | + $res = $dbr->select( 'optin_survey', array( |
| 242 | + 'ois_question', |
| 243 | + 'ois_answer', |
| 244 | + 'ois_answer_data' ), array( |
| 245 | + 'ois_user' => $wgUser->getID(), |
| 246 | + 'ois_type' => $opt ), __METHOD__ ); |
| 247 | + foreach( $res as $row ) |
| 248 | + $loaded[$row->ois_question] = array( |
| 249 | + $row->ois_answer, $row->ois_answer_data |
| 250 | + ); |
| 251 | + } |
| 252 | + |
221 | 253 | $query = array( 'from' => $this->mOrigin, |
222 | 254 | 'fromquery' => $this->mOriginQuery |
223 | 255 | ); |
— | — | @@ -227,9 +259,12 @@ |
228 | 260 | 'id' => 'optin-survey', |
229 | 261 | ) |
230 | 262 | ); |
231 | | - $retval .= Xml::hidden( 'opt', 'out' ); |
| 263 | + $retval .= Xml::hidden( 'opt', $opt ); |
232 | 264 | $retval .= Xml::openElement( 'dl' ); |
233 | | - foreach ( $wgOptInSurvey as $id => $question ) { |
| 265 | + foreach ( $survey as $id => $question ) { |
| 266 | + $answer = isset( $loaded[$id] ) ? $loaded[$id][0] : null; |
| 267 | + $answerdata = isset( $loaded[$id] ) |
| 268 | + ? $loaded[$id][1] : null; |
234 | 269 | switch ( $question['type'] ) { |
235 | 270 | case 'dropdown': |
236 | 271 | $retval .= Xml::tags( |
— | — | @@ -245,11 +280,14 @@ |
246 | 281 | $retval .= Xml::openElement( 'select', $attrs ); |
247 | 282 | $retval .= Xml::option( '', '' ); |
248 | 283 | foreach ( $question['answers'] as $aid => $answer ) { |
249 | | - $retval .= Xml::option( wfMsg( $answer ), $aid ); |
| 284 | + $retval .= Xml::option( |
| 285 | + wfMsg( $answer ), $aid, |
| 286 | + $answer === $aid ); |
250 | 287 | } |
251 | 288 | if ( isset( $question['other'] ) ) { |
252 | 289 | $retval .= Xml::option( |
253 | | - wfMsg( $question['other'] ), 'other' |
| 290 | + wfMsg( $question['other'] ), |
| 291 | + 'other', $answer === 'other' |
254 | 292 | ); |
255 | 293 | } |
256 | 294 | $retval .= Xml::closeElement( 'select' ); |
— | — | @@ -258,7 +296,8 @@ |
259 | 297 | Xml::input( |
260 | 298 | "survey-$id-other", |
261 | 299 | false, |
262 | | - false, |
| 300 | + $answer === 'other' ? |
| 301 | + $answerdata : false, |
263 | 302 | array( |
264 | 303 | 'class' => 'optin-other-select', |
265 | 304 | 'id' => "survey-$id-other" |
— | — | @@ -276,7 +315,9 @@ |
277 | 316 | $radios = array(); |
278 | 317 | foreach ( $question['answers'] as $aid => $answer ) { |
279 | 318 | $radios[] = Xml::radioLabel( |
280 | | - wfMsg( $answer ), "survey-$id", $aid, "survey-$id-$aid" |
| 319 | + wfMsg( $answer ), "survey-$id", |
| 320 | + $aid, "survey-$id-$aid", |
| 321 | + $answer === $aid |
281 | 322 | ); |
282 | 323 | } |
283 | 324 | if ( isset( $question['other'] ) ) { |
— | — | @@ -284,13 +325,15 @@ |
285 | 326 | wfMsg( $question['other'] ), |
286 | 327 | "survey-$id", |
287 | 328 | 'other', |
288 | | - "survey-$id-other-radio" |
| 329 | + "survey-$id-other-radio", |
| 330 | + $answer === 'other' |
289 | 331 | ) . |
290 | 332 | ' ' . |
291 | 333 | Xml::input( |
292 | 334 | "survey-$id-other", |
293 | 335 | false, |
294 | | - false, |
| 336 | + $answer === 'other' ? |
| 337 | + $answerdata : false, |
295 | 338 | array( 'class' => 'optin-other-radios' ) |
296 | 339 | ); |
297 | 340 | } |
— | — | @@ -298,6 +341,7 @@ |
299 | 342 | $retval .= Xml::closeElement( 'dd' ); |
300 | 343 | break; |
301 | 344 | case 'checkboxes': |
| 345 | + $answers = explode( ',', $answer ); |
302 | 346 | $retval .= Xml::tags( |
303 | 347 | 'dt', null, wfMsgWikiHtml( $question['question'] ) |
304 | 348 | ); |
— | — | @@ -308,7 +352,7 @@ |
309 | 353 | wfMsg( $answer ), |
310 | 354 | "survey-{$id}[]", |
311 | 355 | "survey-$id-$aid", |
312 | | - false, |
| 356 | + in_array( $aid, $answers, true ), |
313 | 357 | array( 'value' => $aid ) |
314 | 358 | ); |
315 | 359 | } |
— | — | @@ -317,14 +361,15 @@ |
318 | 362 | wfMsg( $question['other'] ), |
319 | 363 | "survey-{$id}[]", |
320 | 364 | "survey-$id-other-check", |
321 | | - false, |
| 365 | + in_array( 'other', $answers, true ), |
322 | 366 | array( 'value' => 'other' ) |
323 | 367 | ) . |
324 | 368 | ' ' . |
325 | 369 | Xml::input( |
326 | 370 | "survey-$id-other", |
327 | 371 | false, |
328 | | - false, |
| 372 | + in_array( 'other', $answers, true ) ? |
| 373 | + $answerdata : false, |
329 | 374 | array( 'class' => 'optin-other-checks' ) |
330 | 375 | ); |
331 | 376 | } |
— | — | @@ -341,7 +386,7 @@ |
342 | 387 | "survey-$id", |
343 | 388 | 'yes', |
344 | 389 | "survey-$id-yes", |
345 | | - false, |
| 390 | + $answer === 'yes', |
346 | 391 | array( 'class' => 'survey-yes' ) |
347 | 392 | ); |
348 | 393 | $retval .= Xml::element( 'br' ); |
— | — | @@ -350,7 +395,7 @@ |
351 | 396 | "survey-$id", |
352 | 397 | 'no', |
353 | 398 | "survey-$id-no", |
354 | | - false, |
| 399 | + $answer === 'no', |
355 | 400 | array( 'class' => 'survey-no' ) |
356 | 401 | ); |
357 | 402 | $retval .= Xml::closeElement( 'dd' ); |
— | — | @@ -365,7 +410,10 @@ |
366 | 411 | 'dt', null, wfMsgWikiHtml( $question['ifyes'] ) |
367 | 412 | ); |
368 | 413 | $retval .= Xml::tags( |
369 | | - 'dd', null, Xml::textarea( "survey-$id-ifyes", '' ) |
| 414 | + 'dd', null, Xml::textarea( |
| 415 | + "survey-$id-ifyes", |
| 416 | + $answerdata ? |
| 417 | + $answerdata : '' ) |
370 | 418 | ); |
371 | 419 | $retval .= Xml::closeElement( 'blockquote' ); |
372 | 420 | } |
— | — | @@ -373,19 +421,26 @@ |
374 | 422 | $retval .= Xml::openElement( |
375 | 423 | 'blockquote', array( |
376 | 424 | 'id' => "survey-$id-ifno-row", |
377 | | - 'class' => 'survey-ifyes', |
| 425 | + 'class' => 'survey-ifno', |
378 | 426 | ) |
379 | 427 | ); |
380 | 428 | $retval .= Xml::tags( |
381 | 429 | 'dt', null, wfMsgWikiHtml( $question['ifno'] ) |
382 | 430 | ); |
383 | 431 | $retval .= Xml::tags( |
384 | | - 'dd', null, Xml::textarea( "survey-$id-ifno", '' ) |
| 432 | + 'dd', null, Xml::textarea( |
| 433 | + "survey-$id-ifno", |
| 434 | + $answerdata ? |
| 435 | + $answerdata : '' ) |
385 | 436 | ); |
386 | 437 | $retval .= Xml::closeElement( 'blockquote' ); |
387 | 438 | } |
388 | 439 | break; |
389 | 440 | case 'resolution': |
| 441 | + if ( $answerdata ) |
| 442 | + list( $x, $y ) = explode( 'x', $answerdata ); |
| 443 | + else |
| 444 | + $x = $y = false; |
390 | 445 | $retval .= Xml::tags( |
391 | 446 | 'dt', null, wfMsgWikiHtml( $question['question'] ) |
392 | 447 | ); |
— | — | @@ -393,7 +448,7 @@ |
394 | 449 | $retval .= Xml::input( |
395 | 450 | "survey-$id-x", |
396 | 451 | 5, |
397 | | - false, |
| 452 | + $x, |
398 | 453 | array( |
399 | 454 | 'class' => 'optin-resolution-x', |
400 | 455 | 'id' => "survey-$id-x", |
— | — | @@ -403,7 +458,7 @@ |
404 | 459 | $retval .= Xml::input( |
405 | 460 | "survey-$id-y", |
406 | 461 | 5, |
407 | | - false, |
| 462 | + $y, |
408 | 463 | array( |
409 | 464 | 'class' => 'optin-resolution-y', |
410 | 465 | 'id' => "survey-$id-y", |
— | — | @@ -416,7 +471,8 @@ |
417 | 472 | 'dt', null, wfMsgWikiHtml( $question['question'] ) |
418 | 473 | ); |
419 | 474 | $retval .= Xml::tags( |
420 | | - 'dd', null, Xml::textarea( "survey-$id", '' ) |
| 475 | + 'dd', null, Xml::textarea( "survey-$id", |
| 476 | + $answerdata ? $answerdata : '' ) |
421 | 477 | ); |
422 | 478 | break; |
423 | 479 | } |
— | — | @@ -425,22 +481,23 @@ |
426 | 482 | 'dt', |
427 | 483 | array( 'class' => 'optin-survey-submit' ), |
428 | 484 | Xml::element( 'a', array( 'id' => 'leave' ), '', false ) . |
429 | | - Xml::submitButton( wfMsg( 'optin-submit-out' ) ) |
| 485 | + Xml::submitButton( wfMsg( $submitMsg ) ) |
430 | 486 | ); |
431 | 487 | $retval .= Xml::closeElement( 'dl' ); |
432 | 488 | $retval .= Xml::closeElement( 'form' ); |
433 | 489 | $wgOut->addHTML( $retval ); |
434 | 490 | } |
435 | 491 | |
436 | | - private function saveSurvey() { |
437 | | - global $wgRequest, $wgUser, $wgOptInSurvey; |
| 492 | + private function saveSurvey( $survey, $type ) { |
| 493 | + global $wgRequest, $wgUser; |
438 | 494 | |
439 | 495 | $dbw = wfGetDb( DB_MASTER ); |
440 | 496 | $now = $dbw->timestamp( wfTimestamp() ); |
441 | | - foreach ( $wgOptInSurvey as $id => $question ) { |
| 497 | + foreach ( $survey as $id => $question ) { |
442 | 498 | $insert = array( |
443 | 499 | 'ois_user' => $wgUser->getId(), |
444 | 500 | 'ois_timestamp' => $now, |
| 501 | + 'ois_type' => $type, |
445 | 502 | 'ois_question' => $id ); |
446 | 503 | switch ( $question['type'] ) { |
447 | 504 | case 'dropdown': |
— | — | @@ -459,9 +516,7 @@ |
460 | 517 | } |
461 | 518 | break; |
462 | 519 | case 'checkboxes': |
463 | | - $checked = array_map( |
464 | | - 'intval', $wgRequest->getArray( "survey-$id", array() ) |
465 | | - ); |
| 520 | + $checked = $wgRequest->getArray( "survey-$id", array() ); |
466 | 521 | $insert['ois_answer'] = |
467 | 522 | ( count( $checked ) ? implode( ',', $checked ) : null ); |
468 | 523 | $insert['ois_answer_data'] = ( in_array( 'other', $checked ) ? |
— | — | @@ -473,9 +528,9 @@ |
474 | 529 | $wgRequest->getVal( "survey-$id", null ); |
475 | 530 | $data = ''; |
476 | 531 | if ( $insert['ois_answer'] == 'yes' ) |
477 | | - $data += $wgRequest->getVal( "survey-$id-ifyes", '' ); |
| 532 | + $data .= $wgRequest->getVal( "survey-$id-ifyes", '' ); |
478 | 533 | if ( $insert['ois_answer'] == 'no' ) |
479 | | - $data += $wgRequest->getVal( "survey-$id-ifno", '' ); |
| 534 | + $data .= $wgRequest->getVal( "survey-$id-ifno", '' ); |
480 | 535 | $insert['ois_answer_data'] = ( $data ? $data : null ); |
481 | 536 | break; |
482 | 537 | case 'resolution': |
Index: trunk/extensions/UsabilityInitiative/OptIn/OptIn.hooks.php |
— | — | @@ -32,7 +32,7 @@ |
33 | 33 | // Loads opt-in messages |
34 | 34 | wfLoadExtensionMessages( 'OptIn' ); |
35 | 35 | |
36 | | - $fromquery = $wgRequest->data; |
| 36 | + $fromquery = $wgRequest->getValues(); |
37 | 37 | unset( $fromquery['title'] ); |
38 | 38 | $query = array( 'from' => $title->getPrefixedDBKey(), |
39 | 39 | 'fromquery' => wfArrayToCGI( $fromquery ) |
— | — | @@ -46,18 +46,29 @@ |
47 | 47 | $link = SpecialPage::getTitleFor( 'OptIn' )->getFullURL( $query ); |
48 | 48 | |
49 | 49 | // Inserts a link into personal tools |
50 | | - $personal_urls = array_merge( |
51 | | - array( |
52 | | - 'acaibeta' => array( |
53 | | - 'text' => SpecialOptIn::isOptedIn( $wgUser ) ? |
54 | | - wfMsg( 'optin-leave' ) : |
55 | | - wfMsg( 'optin-try' ), |
56 | | - 'href' => $link, |
57 | | - 'class' => 'no-text-transform' |
58 | | - ) |
59 | | - ), |
60 | | - $personal_urls |
| 50 | + $addLinks = array( |
| 51 | + 'acaibeta' => array( |
| 52 | + 'text' => SpecialOptIn::isOptedIn( $wgUser ) ? |
| 53 | + wfMsg( 'optin-leave' ) : |
| 54 | + wfMsg( 'optin-try' ), |
| 55 | + 'href' => $link, |
| 56 | + 'class' => 'no-text-transform' |
| 57 | + ) |
61 | 58 | ); |
| 59 | + |
| 60 | + // For opted-in users, add a feedback link |
| 61 | + if ( SpecialOptIn::isOptedIn( $wgUser ) ) { |
| 62 | + $query['opt'] = 'feedback'; |
| 63 | + $link = SpecialPage::getTitleFor( 'OptIn' )->getFullURL( $query ); |
| 64 | + $addLinks['betafeedback'] = array( |
| 65 | + 'text' => wfMsg( 'optin-feedback' ), |
| 66 | + 'href' => $link, |
| 67 | + 'class' => 'no-text-transform' |
| 68 | + ); |
| 69 | + } |
| 70 | + |
| 71 | + // Add the links |
| 72 | + $personal_urls = array_merge( $addLinks, $personal_urls ); |
62 | 73 | return true; |
63 | 74 | } |
64 | 75 | } |
Index: trunk/extensions/UsabilityInitiative/OptIn/OptIn.js |
— | — | @@ -25,6 +25,8 @@ |
26 | 26 | norow.slideDown( 'fast' ); |
27 | 27 | } |
28 | 28 | }); |
| 29 | + // Load initial state |
| 30 | + $( '.survey-yes, .survey-no' ).change(); |
29 | 31 | |
30 | 32 | // Detect screen resolution |
31 | 33 | if ( screen.width && screen.height ) { |
Index: trunk/extensions/UsabilityInitiative/OptIn/OptIn.sql |
— | — | @@ -8,6 +8,9 @@ |
9 | 9 | |
10 | 10 | -- Timestamp |
11 | 11 | ois_timestamp binary(14) NOT NULL, |
| 12 | + |
| 13 | + -- Survey type (out or feedback) |
| 14 | + ois_type varchar(16) NOT NULL, |
12 | 15 | |
13 | 16 | -- Question ID (key in $wgOptInSurvey) |
14 | 17 | ois_question int unsigned NOT NULL, |
Index: trunk/extensions/UsabilityInitiative/OptIn/OptIn.i18n.php |
— | — | @@ -18,22 +18,29 @@ |
19 | 19 | 'optin-title-optedin' => 'Leave Beta', |
20 | 20 | 'optin-title-justoptedin' => 'Welcome to Beta', |
21 | 21 | 'optin-title-justoptedout' => 'Thank you for trying Beta', |
| 22 | + 'optin-title-feedback' => 'Give feedback', |
22 | 23 | 'optin-needlogin' => 'You need to [$1 log in] to try Beta.', |
23 | 24 | 'optin-intro' => 'The Wikipedia Usability Initiative has been working hard to improve the usability of Wikipedia. |
24 | 25 | Would you like to try Beta?', |
| 26 | + 'optin-feedback-intro' => "Thank you for trying Beta. |
| 27 | +We would like to know what you think of our new interface, so we would appreciate it if you filled out the optional survey below.", |
| 28 | + 'optin-feedback-back' => 'If you do not want to fill out the survey, you can return to $1.', |
25 | 29 | 'optin-success-in' => 'You are now trying out Beta. |
26 | 30 | You can opt back out at any time by clicking the "{{int:optin-leave}}" link on the top of the screen.', |
27 | 31 | 'optin-leave-cancel' => 'If you would like to continue using Beta, you can return to $1.', |
28 | 32 | 'optin-success-out' => 'You have successfully left Beta. |
29 | 33 | You can try it out again at anytime by clicking the "{{int:optin-try}}" link on the top right of the screen.', |
| 34 | + 'optin-success-feedback' => 'Thank you for your feedback!', |
30 | 35 | 'optin-accept-short' => 'Let\'s do it!', |
31 | 36 | 'optin-accept-long' => 'Try out Beta', |
32 | 37 | 'optin-accept-long-anon' => 'Log in and try out Beta', |
33 | 38 | 'optin-deny-short' => 'No thank you', |
34 | 39 | 'optin-deny-long' => 'Return to previous page', |
35 | 40 | 'optin-submit-out' => 'Leave Beta', |
| 41 | + 'optin-submit-feedback' => 'Give feedback', |
36 | 42 | 'optin-try' => 'Try Beta', |
37 | 43 | 'optin-leave' => 'Leave Beta', |
| 44 | + 'optin-feedback' => 'Give feedback', |
38 | 45 | 'optin-survey-yes' => 'Yes', |
39 | 46 | 'optin-survey-no' => 'No', |
40 | 47 | 'optin-survey-intro' => "Thank you for trying Beta. |
— | — | @@ -52,6 +59,7 @@ |
53 | 60 | 'optin-survey-question-techfail-ifyes' => 'If yes, please elaborate or explain:', |
54 | 61 | 'optin-survey-question-usedtoolbar' => 'Did you use the new expandable toolbar to edit a page?', |
55 | 62 | 'optin-survey-question-usedtoolbar-ifyes' => 'If yes, what did you like about it? What did you dislike about it?', |
| 63 | + 'optin-survey-question-usedtoolbar-ifno' => 'If no, why not? Will you in the future? Please explain.', |
56 | 64 | 'optin-survey-question-different' => 'What could we have done differently to keep you using our Beta?', |
57 | 65 | 'optin-survey-question-feedback' => 'Please let us know about any other comments, concerns or thoughts you have for us - all feedback is useful!:', |
58 | 66 | 'optin-survey-question-browser' => 'Which browser do you use?', |
— | — | @@ -77,6 +85,15 @@ |
78 | 86 | 'optin-survey-answer-os-linux' => 'Linux', |
79 | 87 | 'optin-survey-answer-os-other' => 'Other operating system:', |
80 | 88 | 'optin-survey-question-res' => 'What is the resolution of your screen?', |
| 89 | + 'optin-survey-question-changes' => 'What changes would you like to see in the Beta in the future (select up to three)?', |
| 90 | + 'optin-survey-answer-changes-nav' => 'Make the overall navigation of the site easier to use.', |
| 91 | + 'optin-survey-answer-changes-edittools' => 'Increase and enhance the editing tools.', |
| 92 | + 'optin-survey-answer-changes-upload' => 'Improve content and media uploads.', |
| 93 | + 'optin-survey-answer-changes-richtext' => 'Develop editing tools similar to rich-text editors.', |
| 94 | + 'optin-survey-answer-changes-lookfeel' => 'Update the "look and feel" of the site.', |
| 95 | + 'optin-survey-answer-changes-predictability' => 'Improve predictability of performance.', |
| 96 | + 'optin-survey-answer-changes-compat' => 'Improve compatibility with local wiki.', |
| 97 | + 'optin-survey-answer-changes-other' => 'Other:', |
81 | 98 | 'optin-improvements' => "== What has been improved? == |
82 | 99 | [[File:UsabilityNavigation.png|right]] |
83 | 100 | ;Enhanced navigation |