| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <html i18n-values="dir:textdirection;"> | 2 <html i18n-values="dir:textdirection;"> |
| 3 <head> | 3 <head> |
| 4 <meta charset="utf-8"> | 4 <meta charset="utf-8"> |
| 5 <title i18n-content="pluginsTitle"></title> | 5 <title i18n-content="pluginsTitle"></title> |
| 6 <style> | 6 <style> |
| 7 | 7 |
| 8 body { | 8 body { |
| 9 margin: 10px; | 9 margin: 10px; |
| 10 min-width: 47em; | 10 min-width: 47em; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 padding-top: 0.8em; | 155 padding-top: 0.8em; |
| 156 width: 100%; | 156 width: 100%; |
| 157 } | 157 } |
| 158 | 158 |
| 159 html[dir=rtl] .tmi-mode { | 159 html[dir=rtl] .tmi-mode { |
| 160 padding-right: 10px; | 160 padding-right: 10px; |
| 161 padding-left: 0; | 161 padding-left: 0; |
| 162 } | 162 } |
| 163 | 163 |
| 164 .plugin-disabled > td { | 164 .plugin-disabled > td { |
| 165 background: url('gray.png') 0px 0px; | 165 background-color: #f0f0f0; |
| 166 color: #a0a0a0; | 166 color: #a0a0a0; |
| 167 padding-bottom: 4px; | 167 padding-bottom: 4px; |
| 168 padding-top: 5px; | 168 padding-top: 5px; |
| 169 } | 169 } |
| 170 | 170 |
| 171 .plugin-enabled > td { | 171 .plugin-enabled > td { |
| 172 padding-bottom: 4px; | 172 padding-bottom: 4px; |
| 173 padding-top: 5px; | 173 padding-top: 5px; |
| 174 } | 174 } |
| 175 | 175 |
| 176 .plugin-file-disabled { |
| 177 background-color: #f0f0f0; |
| 178 color: #a0a0a0; |
| 179 padding-top: 5px; |
| 180 padding-bottom: 5px; |
| 181 } |
| 182 |
| 183 .plugin-file-enabled { |
| 184 padding-top: 5px; |
| 185 padding-bottom: 5px; |
| 186 } |
| 187 |
| 176 .plugin { | 188 .plugin { |
| 177 border-bottom: 1px solid #cdcdcd; | 189 border-bottom: 1px solid #cdcdcd; |
| 178 } | 190 } |
| 179 | 191 |
| 192 .critical { |
| 193 color: red; |
| 194 } |
| 195 |
| 180 /* Indent the text related to each plug-in. */ | 196 /* Indent the text related to each plug-in. */ |
| 181 .plugin-text { | 197 .plugin-text { |
| 182 padding-left: 5px; | 198 padding-left: 5px; |
| 183 } | 199 } |
| 184 | 200 |
| 185 html[dir=rtl] .plugin-text { | 201 html[dir=rtl] .plugin-text { |
| 186 padding-right: 5px; | 202 padding-right: 5px; |
| 187 padding-left: 0; | 203 padding-left: 0; |
| 188 } | 204 } |
| 189 | 205 |
| 190 .plugin-name { | 206 .plugin-name { |
| 191 font-weight: bold; | 207 font-weight: bold; |
| 192 } | 208 } |
| 193 | 209 |
| 194 .no-plugins { | 210 .no-plugins { |
| 195 margin: 6em 0 0; | 211 margin: 6em 0 0; |
| 196 text-align: center; | 212 text-align: center; |
| 197 font-size: 1.2em; | 213 font-size: 1.2em; |
| 198 } | 214 } |
| 199 | 215 |
| 200 /* Use tables for layout, so eliminate extra spacing. */ | 216 /* Use tables for layout, so eliminate extra spacing. */ |
| 201 .plugin-details table { | 217 .plugin-details table { |
| 202 -webkit-border-horizontal-spacing: 0; | 218 -webkit-border-horizontal-spacing: 0; |
| 203 -webkit-border-vertical-spacing: 0; | 219 -webkit-border-vertical-spacing: 0; |
| 204 } | 220 } |
| 205 | 221 |
| 222 .plugin-details { |
| 223 padding-left: 1em; |
| 224 } |
| 225 |
| 206 /* Separate the inital line, Description, Location, and MIME Types lines. */ | 226 /* Separate the inital line, Description, Location, and MIME Types lines. */ |
| 207 .plugin-details > div { | 227 .plugin-details > div { |
| 208 padding-top: 0.1em | 228 padding-top: 0.1em |
| 209 } | 229 } |
| 210 | 230 |
| 211 /* Align rows of tables along the top. */ | 231 /* Align rows of tables along the top. */ |
| 212 .plugin-details tr { | 232 .plugin-details tr { |
| 213 vertical-align: top; | 233 vertical-align: top; |
| 214 } | 234 } |
| 215 | 235 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 | 282 |
| 263 </style> | 283 </style> |
| 264 <script> | 284 <script> |
| 265 | 285 |
| 266 /** | 286 /** |
| 267 * This variable structure is here to document the structure that the template | 287 * This variable structure is here to document the structure that the template |
| 268 * expects to correctly populate the page. | 288 * expects to correctly populate the page. |
| 269 */ | 289 */ |
| 270 var pluginDataFormat = { | 290 var pluginDataFormat = { |
| 271 'plugins': [ | 291 'plugins': [ |
| 272 { | 292 { 'name': 'Group Name', |
| 273 'path': '/blahblah/blahblah/MyCrappyPlugin.plugin', | 293 'description': 'description', |
| 274 'name': 'MyCrappyPlugin', | 294 'version': 'version', |
| 275 'version': '1.2.3', | 295 'update_url': 'http://update/', |
| 276 'description': 'My crappy plugin', | 296 'critical': true, |
| 277 'mimeTypes': [ | 297 'enabled': true, |
| 278 { 'description': 'Foo Media', | 298 'plugin_files': [ |
| 279 'fileExtensions': [ 'foo' ], | 299 { |
| 280 'mimeType': 'application/x-my-foo' }, | 300 'path': '/blahblah/blahblah/MyCrappyPlugin.plugin', |
| 281 { 'description': 'Bar Stuff', | 301 'name': 'MyCrappyPlugin', |
| 282 'fileExtensions': [ 'bar','baz' ], | 302 'version': '1.2.3', |
| 283 'mimeType': 'application/my-bar' } | 303 'description': 'My crappy plugin', |
| 284 ], | 304 'mimeTypes': [ |
| 285 'enabled': true | 305 { 'description': 'Foo Media', |
| 286 }, | 306 'fileExtensions': [ 'foo' ], |
| 287 { | 307 'mimeType': 'application/x-my-foo' }, |
| 288 'path': '/foobar/baz/YourGreatPlugin.plugin', | 308 { 'description': 'Bar Stuff', |
| 289 'name': 'YourGreatPlugin', | 309 'fileExtensions': [ 'bar','baz' ], |
| 290 'version': '4.5', | 310 'mimeType': 'application/my-bar' } |
| 291 'description': 'Your great plugin', | 311 ], |
| 292 'mimeTypes': [ | 312 'enabled': true |
| 293 { 'description': 'Baz Stuff', | 313 }, |
| 294 'fileExtensions': [ 'baz' ], | 314 { |
| 295 'mimeType': 'application/x-your-baz' } | 315 'path': '/foobar/baz/YourGreatPlugin.plugin', |
| 296 ], | 316 'name': 'YourGreatPlugin', |
| 297 'enabled': false | 317 'version': '4.5', |
| 318 'description': 'Your great plugin', |
| 319 'mimeTypes': [ |
| 320 { 'description': 'Baz Stuff', |
| 321 'fileExtensions': [ 'baz' ], |
| 322 'mimeType': 'application/x-your-baz' } |
| 323 ], |
| 324 'enabled': false |
| 325 } |
| 326 ] |
| 298 } | 327 } |
| 299 ] | 328 ] |
| 300 }; | 329 }; |
| 301 | 330 |
| 302 /** | 331 /** |
| 303 * Takes the |pluginsData| input argument which represents data about the | 332 * Takes the |pluginsData| input argument which represents data about the |
| 304 * currently installed/running plugins and populates the html jstemplate with | 333 * currently installed/running plugins and populates the html jstemplate with |
| 305 * that data. It expects an object structure like the above. | 334 * that data. It expects an object structure like the above. |
| 306 * @param {Object} pluginsData Detailed info about installed plugins | 335 * @param {Object} pluginsData Detailed info about installed plugins |
| 307 */ | 336 */ |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 document.getElementById('expand').style.display = | 397 document.getElementById('expand').style.display = |
| 369 tmiModeExpanded ? 'none' : 'inline'; | 398 tmiModeExpanded ? 'none' : 'inline'; |
| 370 bodyContainer.style.visibility = 'visible'; | 399 bodyContainer.style.visibility = 'visible'; |
| 371 body.className = tmiModeExpanded ? | 400 body.className = tmiModeExpanded ? |
| 372 'showTmiModeInitial' : 'hideTmiModeInitial'; | 401 'showTmiModeInitial' : 'hideTmiModeInitial'; |
| 373 } | 402 } |
| 374 | 403 |
| 375 /** | 404 /** |
| 376 * Handles a 'enable' or 'disable' button getting clicked. | 405 * Handles a 'enable' or 'disable' button getting clicked. |
| 377 */ | 406 */ |
| 378 function handleEnablePlugin(node, enable) { | 407 function handleEnablePlugin(node, enable, is_group) { |
| 379 // Tell the C++ PluginsDOMHandler to enable/disable the plugin. | 408 // Tell the C++ PluginsDOMHandler to enable/disable the plugin. |
| 380 chrome.send('enablePlugin', [node.pluginPath, String(enable)]); | 409 chrome.send('enablePlugin', [String(node.path), String(enable), |
| 410 String(is_group)]); |
| 381 requestPluginsData(); | 411 requestPluginsData(); |
| 382 } | 412 } |
| 383 | 413 |
| 384 // Keeps track of whether details have been made visible (expanded) or not. | 414 // Keeps track of whether details have been made visible (expanded) or not. |
| 385 var tmiModeExpanded = false; | 415 var tmiModeExpanded = false; |
| 386 | 416 |
| 387 /* | 417 /* |
| 388 * Toggles visibility of details. | 418 * Toggles visibility of details. |
| 389 */ | 419 */ |
| 390 function toggleTmiMode() { | 420 function toggleTmiMode() { |
| 391 tmiModeExpanded = !tmiModeExpanded; | 421 tmiModeExpanded = !tmiModeExpanded; |
| 392 | 422 |
| 393 document.getElementById('collapse').style.display = | 423 document.getElementById('collapse').style.display = |
| 394 tmiModeExpanded ? 'inline' : 'none'; | 424 tmiModeExpanded ? 'inline' : 'none'; |
| 395 document.getElementById('expand').style.display = | 425 document.getElementById('expand').style.display = |
| 396 tmiModeExpanded ? 'none' : 'inline'; | 426 tmiModeExpanded ? 'none' : 'inline'; |
| 397 | 427 |
| 398 document.body.className = | 428 document.body.className = |
| 399 tmiModeExpanded ? 'showTmiMode' : 'hideTmiMode'; | 429 tmiModeExpanded ? 'showTmiMode' : 'hideTmiMode'; |
| 400 } | 430 } |
| 401 | 431 |
| 402 /** | 432 /** |
| 403 * Determines whether a plugin's version should be displayed. | 433 * Determines whether a plugin's version should be displayed. |
| 404 */ | 434 */ |
| 405 function shouldDisplayPluginVersion(plugin) { | 435 function shouldDisplayPluginVersion(plugin) { |
| 406 return !!plugin.version; | 436 return !!plugin.version && plugin.version != "0"; |
| 407 } | 437 } |
| 408 | 438 |
| 409 /** | 439 /** |
| 410 * Determines whether a plugin's description should be displayed. | 440 * Determines whether a plugin's description should be displayed. |
| 411 */ | 441 */ |
| 412 function shouldDisplayPluginDescription(plugin) { | 442 function shouldDisplayPluginDescription(plugin) { |
| 413 // Only display the description if it's not blank and if it's not just the | 443 // Only display the description if it's not blank and if it's not just the |
| 414 // name, version, or combination thereof. | 444 // name, version, or combination thereof. |
| 415 return plugin.description && | 445 return plugin.description && |
| 416 plugin.description != plugin.name && | 446 plugin.description != plugin.name && |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 | 503 |
| 474 <div jsdisplay="plugins.length > 0"> | 504 <div jsdisplay="plugins.length > 0"> |
| 475 <div class="plugin" jsselect="plugins"> | 505 <div class="plugin" jsselect="plugins"> |
| 476 <table width="100%" cellpadding="2" cellspacing="0"> | 506 <table width="100%" cellpadding="2" cellspacing="0"> |
| 477 <tr jsvalues= | 507 <tr jsvalues= |
| 478 ".className:enabled ? 'plugin-enabled' : 'plugin-disabled'"> | 508 ".className:enabled ? 'plugin-enabled' : 'plugin-disabled'"> |
| 479 <td valign="top"> | 509 <td valign="top"> |
| 480 <div class="plugin-text"> | 510 <div class="plugin-text"> |
| 481 <div> | 511 <div> |
| 482 <span class="plugin-name" dir="ltr" | 512 <span class="plugin-name" dir="ltr" |
| 483 jscontent="name">PLUGIN NAME</span> | 513 jscontent="name">NAME</span> |
| 514 <span jsdisplay="plugin_files.length > 1" |
| 515 jscontent="'(' + plugin_files.length +' files)'">(x)</span> |
| 484 <span jsdisplay="shouldDisplayPluginVersion($this)"> | 516 <span jsdisplay="shouldDisplayPluginVersion($this)"> |
| 485 - <span i18n-content="pluginVersion">VERSION</span> | 517 - <span i18n-content="pluginVersion">VERSION</span> |
| 486 <span dir="ltr" jscontent="version">x.x.x.x</span> | 518 <span jsvalues=".className:critical? 'critical': ''" |
| 519 dir="ltr" jscontent="version">x.x.x.x</span> |
| 487 </span> | 520 </span> |
| 521 <a jsdisplay="critical" jsvalues=".href:update_url" |
| 522 i18n-content="pluginDownload">DOWNLOAD UPDATE</a> |
| 488 <span jsdisplay="!enabled" | 523 <span jsdisplay="!enabled" |
| 489 i18n-content="pluginDisabled">(DISABLED)</span> | 524 i18n-content="pluginDisabled">(DISABLED)</span> |
| 525 <div jsdisplay="shouldDisplayPluginDescription($this)"> |
| 526 <span dir="ltr" jsvalues=".innerHTML:description"> |
| 527 </div> |
| 490 </div> | 528 </div> |
| 491 <div class="plugin-details"> | 529 <div jsselect="plugin_files" class="plugin-details"> |
| 492 <div><table><tr jsdisplay="shouldDisplayPluginDescription($this)"> | |
| 493 <td class="plugin-details-label" | |
| 494 i18n-content="pluginDescription">DESCRIPTION:</td> | |
| 495 <td><span dir="ltr" jsvalues=".innerHTML:description"></td> | |
| 496 </tr></table></div> | |
| 497 <div><table><tr> | |
| 498 <td class="plugin-details-label" | |
| 499 i18n-content="pluginPath">PATH:</td> | |
| 500 <td><span dir="ltr" jscontent="path"></span></td> | |
| 501 </tr></table></div> | |
| 502 <div class="showInTmiMode"> | 530 <div class="showInTmiMode"> |
| 503 <table><tr jsdisplay="mimeTypes.length > 0"> | 531 <div jsvalues= |
| 504 <td class="plugin-details-label" | 532 ".className:enabled ? 'plugin-file-enabled' : 'plugin-file-dis
abled'"> |
| 505 i18n-content="pluginMimeTypes">MIME_TYPES:</td> | 533 <div><table><tr> |
| 506 <td><table width="100%" class="mime-types"> | 534 <td class="plugin-details-label" |
| 507 <tr class="header"> | 535 i18n-content="pluginName">NAME:</td> |
| 508 <td i18n-content="pluginMimeTypesMimeType" | 536 <td><span dir="ltr" jscontent="name">NAME</span></td> |
| 509 >MIME type</td> | 537 </tr></table></div> |
| 510 <td i18n-content="pluginMimeTypesDescription" | 538 <div><table><tr jsdisplay="shouldDisplayPluginDescription($thi
s)"> |
| 511 >DESCRIPTION</td> | 539 <td class="plugin-details-label" |
| 512 <td i18n-content="pluginMimeTypesFileExtensions" | 540 i18n-content="pluginDescription">DESCRIPTION:</td> |
| 513 >FILE_EXTENSIONS</td> | 541 <td><span dir="ltr" jsvalues=".innerHTML:description"></td> |
| 514 </tr> | 542 </tr></table></div> |
| 515 <tr jsselect="mimeTypes"> | 543 <div><table><tr> |
| 516 <td><span dir="ltr" | 544 <td class="plugin-details-label" |
| 517 jscontent="mimeType"></span></td> | 545 i18n-content="pluginVersion">VERSION:</td> |
| 518 <td><span dir="ltr" | 546 <td><span dir="ltr" jscontent="version">x.x.x.x</span></td> |
| 519 jsvalues=".innerHTML:description"></span></td> | 547 </tr></table></div> |
| 520 <td><table jsdisplay="fileExtensions.length > 0" | 548 <div><table><tr> |
| 521 class="hlisting"> | 549 <td class="plugin-details-label" |
| 522 <tr><td jsselect="fileExtensions"> | 550 i18n-content="pluginPriority">PRIORITY:</td> |
| 523 <span dir="ltr" jscontent="'.' + $this"> | 551 <td><span dir="ltr" jscontent="priority">x</span></td> |
| 524 </td></tr> | 552 </tr></table></div> |
| 525 </table></td> | 553 <div><table><tr> |
| 526 </tr> | 554 <td class="plugin-details-label" |
| 527 </table></td> | 555 i18n-content="pluginPath">PATH:</td> |
| 528 </tr></table> | 556 <td><span dir="ltr" jscontent="path"></span></td> |
| 557 </tr></table></div> |
| 558 <div><table><tr> |
| 559 <td class="plugin-details-label"> </td> |
| 560 <td> |
| 561 <span jsdisplay="!enabled" |
| 562 i18n-content="pluginDisabled">(DISABLED)</span> |
| 563 <span> |
| 564 <a |
| 565 jsvalues=".path:path" |
| 566 jsdisplay="enabled" |
| 567 onclick="handleEnablePlugin(this, false, false)" |
| 568 href="javascript:void(0);" |
| 569 i18n-content="disable" |
| 570 >DISABLE</a> |
| 571 <a |
| 572 jsvalues=".path:path" |
| 573 jsdisplay="!enabled" |
| 574 onclick="handleEnablePlugin(this, true, false)" |
| 575 href="javascript:void(0);" |
| 576 i18n-content="enable" |
| 577 >ENABLE</a> |
| 578 </span> |
| 579 </td> |
| 580 </tr></table></div> |
| 581 <table><tr jsdisplay="mimeTypes.length > 0"> |
| 582 <td class="plugin-details-label" |
| 583 i18n-content="pluginMimeTypes">MIME_TYPES:</td> |
| 584 <td><table width="100%" class="mime-types"> |
| 585 <tr class="header"> |
| 586 <td i18n-content="pluginMimeTypesMimeType" |
| 587 >MIME type</td> |
| 588 <td i18n-content="pluginMimeTypesDescription" |
| 589 >DESCRIPTION</td> |
| 590 <td i18n-content="pluginMimeTypesFileExtensions" |
| 591 >FILE_EXTENSIONS</td> |
| 592 </tr> |
| 593 <tr jsselect="mimeTypes"> |
| 594 <td><span dir="ltr" |
| 595 jscontent="mimeType"></span></td> |
| 596 <td><span dir="ltr" |
| 597 jsvalues=".innerHTML:description"></span></td> |
| 598 <td><table jsdisplay="fileExtensions.length > 0" |
| 599 class="hlisting"> |
| 600 <tr><td jsselect="fileExtensions"> |
| 601 <span dir="ltr" jscontent="'.' + $this"> |
| 602 </td></tr> |
| 603 </table></td> |
| 604 </tr> |
| 605 </table></td> |
| 606 </tr></table> |
| 607 </div> |
| 529 </div> | 608 </div> |
| 530 </div> | 609 </div> |
| 531 </div> | 610 </div> |
| 532 | |
| 533 <div class="plugin-actions"> | 611 <div class="plugin-actions"> |
| 534 <span> | 612 <span> |
| 535 <a | 613 <a |
| 536 jsvalues=".pluginPath:path" | 614 jsvalues=".path:name" |
| 537 jsdisplay="enabled" | 615 jsdisplay="enabled" |
| 538 onclick="handleEnablePlugin(this, false)" | 616 onclick="handleEnablePlugin(this, false, true)" |
| 539 href="javascript:void();" | 617 href="javascript:void(0);" |
| 540 i18n-content="disable" | 618 i18n-content="disable" |
| 541 >DISABLE</a> | 619 >DISABLE</a> |
| 542 <a | 620 <a |
| 543 jsvalues=".pluginPath:path" | 621 jsvalues=".path:name" |
| 544 jsdisplay="!enabled" | 622 jsdisplay="!enabled" |
| 545 onclick="handleEnablePlugin(this, true)" | 623 onclick="handleEnablePlugin(this, true, true)" |
| 546 href="javascript:void();" | 624 href="javascript:void(0);" |
| 547 i18n-content="enable" | 625 i18n-content="enable" |
| 548 >ENABLE</a> | 626 >ENABLE</a> |
| 549 </span> | 627 </span> |
| 550 </div> | 628 </div> |
| 551 </td> | 629 </td> |
| 552 </tr> | 630 </tr> |
| 553 </table> | 631 </table> |
| 554 </div> | 632 </div> |
| 555 </div> | 633 </div> |
| 556 </div> | 634 </div> |
| 557 </div> | 635 </div> |
| 558 </div> | 636 </div> |
| 559 </body> | 637 </body> |
| 560 </html> | 638 </html> |
| OLD | NEW |