diff --git a/assets/Gruntfile.js b/assets/Gruntfile.js index 84ad6ecc93f0..43c49db05983 100644 --- a/assets/Gruntfile.js +++ b/assets/Gruntfile.js @@ -392,6 +392,12 @@ module.exports = function (grunt) { cwd: 'bower_components/patternfly/components/font-awesome', src: 'fonts/*', dest: '<%= yeoman.dist %>/styles' + }, + { + expand: true, + cwd: 'bower_components/zeroclipboard/dist', + src: 'ZeroClipboard.swf', + dest: '<%= yeoman.dist %>/scripts' }] }, styles: { diff --git a/assets/app/index.html b/assets/app/index.html index 985b2c2f036d..e6203db31271 100644 --- a/assets/app/index.html +++ b/assets/app/index.html @@ -101,6 +101,7 @@ + diff --git a/assets/app/scripts/controllers/overview.js b/assets/app/scripts/controllers/overview.js index 056454476527..a1414f6b711d 100644 --- a/assets/app/scripts/controllers/overview.js +++ b/assets/app/scripts/controllers/overview.js @@ -265,7 +265,7 @@ angular.module('openshiftConsole') } var triggerTag = trigger.imageChangeParams.tag; - var buildTag = build.parameters.output.tag; + var buildTag = build.parameters.output.tag || "latest"; if (triggerTag !== buildTag) { continue; } diff --git a/assets/app/scripts/directives/util.js b/assets/app/scripts/directives/util.js index d275354013a3..e93228dd5854 100644 --- a/assets/app/scripts/directives/util.js +++ b/assets/app/scripts/directives/util.js @@ -22,4 +22,38 @@ angular.module('openshiftConsole') }); } }; + }) + .directive('clickToReveal', function() { + return { + restrict: 'A', + transclude: true, + scope: { + linkText: "@" + }, + templateUrl: 'views/directives/_click-to-reveal.html', + link: function($scope, element, attrs) { + $('.reveal-contents-link', element).click(function (evt) { + $(this).hide(); + $('.reveal-contents', element).show(); + }); + } + }; + }) + .directive('copyToClipboardButton', function() { + return { + restrict: 'E', + scope: { + clipboardText: "=" + }, + templateUrl: 'views/directives/_copy-to-clipboard.html', + link: function($scope, element, attrs) { + if (ZeroClipboard.isFlashUnusable()) { + $(element).hide(); + } + else { + new ZeroClipboard( $('button', element) ); + $("#global-zeroclipboard-html-bridge").tooltip({title: "Copy to clipboard", placement: 'bottom'}); + } + } + } }); \ No newline at end of file diff --git a/assets/app/styles/_core.less b/assets/app/styles/_core.less index a0e6069db6f1..0ddf207df8d3 100644 --- a/assets/app/styles/_core.less +++ b/assets/app/styles/_core.less @@ -295,3 +295,11 @@ select:invalid { text-overflow: ellipsis; white-space: nowrap; } + +.well > { + h1, h2, h3, h4, h5 { + &:first-child { + margin-top: 0; + } + } +} \ No newline at end of file diff --git a/assets/app/views/builds.html b/assets/app/views/builds.html index 6205ee71b3c9..7246c2a411fb 100644 --- a/assets/app/views/builds.html +++ b/assets/app/views/builds.html @@ -8,58 +8,68 @@

Builds

{{emptyMessage}} -
-

{{buildConfigName}}

-
Build strategy: {{buildConfig.parameters.strategy.type}}
-
-
- Builder image: {{buildConfig.parameters.strategy.stiStrategy.image}} -
-
-
- Builder image: {{buildConfig.parameters.strategy.dockerStrategy.image}} +
+
+

{{buildConfigName}}

+
Build strategy: {{buildConfig.parameters.strategy.type}}
+
+
+ Builder image: {{buildConfig.parameters.strategy.stiStrategy.image}} +
+
+
+ Builder image: {{buildConfig.parameters.strategy.dockerStrategy.image}} +
+
+
+ Builder image: {{buildConfig.parameters.strategy.customStrategy.image}}
-
- Builder image: {{buildConfig.parameters.strategy.customStrategy.image}} +
+
Source repo: {{buildConfig.parameters.source.git.uri}}
-
-
-
Source repo: {{buildConfig.parameters.source.git.uri}}
-
-
-
-
- Output image: {{buildConfig.parameters.output.to.name}} +
+
+
+ Output image: {{buildConfig.parameters.output.to.name}} +
+
+
+ Output image: {{buildConfig.parameters.output.dockerImageReference}}
-
- Output image: {{buildConfig.parameters.output.dockerImageReference}} -
-
-
- Triggers: -
    -
  • - - - GitHub webhook URL: - - - - Generic webhook URL: - - - - Image change on image repository {{trigger.imageChange.from.name}}:{{trigger.imageChange.tag}} +
    + Triggers: +
      +
    • + + + GitHub webhook URL + +
      + {{buildConfigName | webhookURL : trigger.type : trigger.github.secret : project.metadata.name}} + +
      +
      + + Generic webhook URL + +
      + {{buildConfigName | webhookURL : trigger.type : trigger.generic.secret : project.metadata.name}} + +
      +
      + + Image change on image repository {{trigger.imageChange.from.name}}:{{trigger.imageChange.tag}} + + {{trigger.type}}
      - {{trigger.type}} - -
    • -
    • Manual: osc start-build {{buildConfigName}} -n {{project.metadata.name}}
    • -
    +
  • +
  • Manual: osc start-build {{buildConfigName}} -n {{project.metadata.name}}
  • +
+
-
+

{{build.metadata.name}}

Created:
@@ -74,15 +84,15 @@

{{build.metadata.name}}

Build strategy: {{build.parameters.strategy.type}}
-
+
Builder image: {{build.parameters.strategy.stiStrategy.image}}
-
+
Builder image: {{build.parameters.strategy.dockerStrategy.image}}
-
+
Builder image: {{build.parameters.strategy.customStrategy.image}}
@@ -109,7 +119,7 @@

{{build.metadata.name}}

-
+

{{buildConfigName}} @@ -117,7 +127,7 @@

-
+

{{build.metadata.name}}

Created:
diff --git a/assets/app/views/directives/_click-to-reveal.html b/assets/app/views/directives/_click-to-reveal.html new file mode 100644 index 000000000000..f60171ff3f47 --- /dev/null +++ b/assets/app/views/directives/_click-to-reveal.html @@ -0,0 +1,2 @@ +{{linkText || "Show..."}} + diff --git a/assets/app/views/directives/_copy-to-clipboard.html b/assets/app/views/directives/_copy-to-clipboard.html new file mode 100644 index 000000000000..51b7bff32241 --- /dev/null +++ b/assets/app/views/directives/_copy-to-clipboard.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/bower.json b/assets/bower.json index 562e3e355214..5d5359da2f4e 100644 --- a/assets/bower.json +++ b/assets/bower.json @@ -20,9 +20,10 @@ "hawtio-extension-service": "2.0.0", "lodash": "2.4.1", "jquery": "2.1.3", - "sifter": "0.3.4", + "sifter": "0.3.4", "microplugin": "0.0.3", - "selectize": "0.11.2" + "selectize": "0.11.2", + "zeroclipboard": "2.2.0" }, "devDependencies": { "angular-mocks": "1.3.8", diff --git a/pkg/assets/bindata.go b/pkg/assets/bindata.go index d1de9edb24d7..747fe2b247df 100644 --- a/pkg/assets/bindata.go +++ b/pkg/assets/bindata.go @@ -12402,6 +12402,13 @@ select:invalid { text-overflow: ellipsis; white-space: nowrap; } +.well h1:first-child, +.well h2:first-child, +.well h3:first-child, +.well h4:first-child, +.well h5:first-child { + margin-top: 0; +} `) func css_main_css() ([]byte, error) { @@ -12529,6 +12536,12 @@ func robots_txt() ([]byte, error) { return _robots_txt, nil } +var _scripts_zeroclipboard_swf = []byte("CWS\x0e\xbe/\x00\x00xڵ:\vx\x93\xd7u\xf7\xfcOI\x96\x85$\x8c1\xef\x1f0\x96m\xaemA\x1eM0\x10\x8cm\x81\x1d@\xc4\x0fB\x00c\xfd\x96~Y\x02Yr\xf4K~$\xd0\x12\x12\xe7\xd5\xe6\xd5$\xa4\r%U_i\xdaФI\xb6u\xdd\xd6uM\xdbuk\xb7N\x92\x87麭[\xbbu\xed\xde[\xf7\xee\x1e\xec\xdc\xff\xff%\xd9Ƥ\xed\xf7\xb5\xc6W\xf7\xdes\xcf=\xe7\xdcs\xce=\xe7\\\x99)\"|\x8f\x10\xd7˄\xd4\x01\xe9\xf2\xac\"\x84\xbcg\xf97\x80\x90\x9d\xe9HtG_W@\x99\x1aK$\xf5\x1d8\xdb\xe5\x8be2\xe3;\xda\xda&''['ojM\xa5G۶\xdd~\xfb\xedm\xfe\xedm۷\xb7 F\x8b>\x9d̨S-I}\xb3o\xb7A\xa0K\xd3\xc3\xe9\xf8x&\x9eJ*l\xae\x8e\xa4\xb2\x99]>\x9fE5\x12.\x13\x1dϦ\x13\x06\xc9H\xb8MKhcZ2\xa3\xb7mk݆\x84\"\xe1\x1d\xd1TzL\xcd\xecV\xc7\xc7\x13\xf1\xb0\xcaȵM\xb5\xe8\xb1T\xf8\xf4\xa4:\xa1\xb5D\x13\xaa\x1e\xdb\xd9VAd{2\xf1LB\xdb\xdd\x11I\x8dhJ \xa1M)7+\x1d\x95\xfd\x06\xb6\x89\u0090#\x15Aw\xcf;\xa6\xcav\xb7\x86Scm\xe3\xe9T$\x1bF\x99\xa2H\xca\xd8<\u007f\v#1\x9e\x1dI\xc4\xf5\x98\x96ޝM\x9eN\xa6&M\x16\x15(\xc3\t\xa755\x93Z\x88Q\x82\xb1\xf5\x84\x9a\x1cͪ\xa3\xda\xee\xeeC\xc6ZynȨf\xb4\xdd]ZX\xd9~;U\xb6\xfb\xb7\xddl\x8a\xc1\xa0;\xdb\x16iۂ\xa0\x01w\x93.\xf7\x0f\xf9\x9d\xa4\x93\xbbv\xed\xda1\a\x8f\x16\x96\xb0\t\xd2G\x8e\x11\xe3\xe7\xab?nx\xa1\x17-\xfeM\xc71-\x9d\xeaL\xc4\xc7GRj:B\xbeXs\xb6\x85\x10\\ Ѵ:\xa6m#n\xd2J\x18\x11\x99p\xc4\xfay\x93#\xc2D*\x1e\x91\xf7\xa6R\tMMJ\xc1\x91SZ8Sm\x18\xa45\x12\xd7\xc7\x13\xea\xb4\xd4?\x9e\x8eg4\xa7\t\xd4&\x98i\x1d\aSY]\xebfc\xa9?\x93\x8e'Gm\x81l2\xccD\x17\xbb\xd3\xe9T\xbaz\x810\xf6Sz\xf7X<\x93\xd1\xd2\xf2)\xfdp:55-\xf7\x9a\xbd=\\\xc2\xf1\x94\xb1{\x92L\x88TZ0>\xe2\xc9x\xa6fT\xcb\x04\x18\xfb#jZ\x0f\xa4Sc\xfb3c\t\x06\xec\x9e\x1aGT-R^\xb4\x8f\xa7\xb5q5\xad\r\xf6ȩ$R\f\x9f\x164\xe4\xecL%+\x12\xbb\xd5HĘ\xedW\x93\x91\x84\x96\xd6mcZFEC\xa85ZRϦ5\xf3D\x81xDK\xc43\xd3U\xc8\xc7\xd4KO\xc4\x11\xd7;Sc\xe3\t-\xa3\xb9\xe2\xfa\xfe\xf8h\xac\x8c\x85D;\xd5DbD\r\x9fv\xa5\xb5\xb1ԄV\x9a\na\x1c\b\xba\x96\x8c\xd40\x11\x9215\x19\xd6\"\xe5\xe3Jq㼶\xa3\xba>\x98\x89't\xf9Hw_\u007fO\U00010e3du{\xab\u007f\xe5\xe1\xbe\xe0ў\xee\xae\xe1Ύ\x03\a\xf6vt\xde9|\xb8\xaf;\xd0s\xb4jx\x18}z*\xaeE\x86\x87kz\xfb\x87\xbb:\x06:p)\xd8\xd9\xdd\xdf\x1f\xec\x1b\x0e\x1czH\x88Z\x16Q\x101\xac\xe9z\x17\x9e\xb0\x91\x1d\x93*\xbaq\xc2\xc3&<\x95\x0e$\x9b\x94\xfb\x15%\x1eU\x1a3\xd3\xe3Z*\xaa04e\u05ee]\xca&\x13u\x93\xd2\xd0`\x00[\x13Zr4\x13Sv+~c\x8fb\xa1^O\xd2`\xd5\u052e(g\x15EK\xe8\xda\xd2\xe4S\x86f߁<\x86\x04\xa5qBM+qd\xe2o\xc7n\xe7|L\x04l\xddj\xa1\x9a\xb2\x1c\x8f\x0f!\xe6\xe23#t\xa9c\xb7\xb3]g\u007f6\x19\x95\x8d\xbb\x94d6\x91X, \xb2\x1cW\xe2I\x03\xa7,\x11#h\x88\x1bS\xf5\xe0d\x12y\x8fk\xe9\xcct#Cn*cY\x923\xe0\x92\xc2\x1b\v7\x94\xdf\x10\xbft\x8c\xb4\x96ɦM!\xda϶{K\xae\xd1}\xa83\xd8\xd5\xcd\x1cc\xa0\xec\x17Z2\x9c\x8ah\x8cK\x00\x89\xb1+\xd4X\x96\xdd\"s\xbd똛\x06\xfbz\xd8EH%\xf1>5\xcd\xe7\xd3\xd5]\xe23X\xe6\x13\xd1\xca|\xf0\xee\xfe\xb4\x8c\xcc]\x8b\x19U\xcdC\\\xb6\xe0\x00\xbd\xfd\ue14cz\xfb\x97\x9bW\xebpB\x8d'\a\xb4\xa9L0\x99\x98\xf6\x9a\xb0\xd25d\xc82چ\xf5nf#D)\xe3\xbbt-\x1dW\x13\xf1\xfb4#\xa8\xd9t\x15\x83\x11\xce\\\xa5\x81\x19)\xaa\xe3\xfa\x11Ċ\xb0\xa8\x841\x02㏮ݕ\xd5\xd2Ӣ\x9e\xc1\xe8/\x1aQ\xc7\xd5\xd1Յ\xd7x 8\xdc?б\xaf\x9b\x05!\x03~ \xaeg\xb4\xa4\x96\x96F\xb2\x99L*Ymť\xcel\x1a-\xbc܌$\v\x10\xad@\xacO\xe3t\xcc֯\x85\xb3i#\xfe$\x12\xa9ɮ\xd4\x18\x8a\xeeʤ\xb3\xb8\x18\t\xa6\xe3\xa3\xf1\xa4\xbe\xd1ʈ\x95l\xd8\xd1\u007fS\xdbv\xbf\xffֶ\x91l<\x91\x89'k\x16\x04\xfc\x1df\xc0\xaf_\b\xec2{3\x12v\xa6\xb0R\x88\xa30\x1b\x16\"\xf5$1ƫh\xf5\t\xcdD\\\xf3\x0eD\xd6\xce\xcf(;\x8c3\xb2u5\x13\xc6|+\xb2ba\xbaJ\x9f\x8c\x96bomcɡ\x1a\x8d-\bG\arx\x15\x85]\xbe\x94\x85\x85\xb7\xc7\xc7\xfb\xa8\xa3ۼ\x18\xb8\x1f!\x91T8\xcbJ\x92\xe3%\xac!\xe5̙2\xb4\x95%\x12\xb3f\xd9;\xdd\x13i,!5Q\xc7r\x93ʱN\x8a~\xaag\x13\x99v\x87#f^jF\x19\x03\x82\x15,pֺ \xe5\x19\x91\xc3W\x92\xd8\xf7N\xa8\xad,C-\xc2g'[k\xb2f\xb1u\xf1\x96v\x87\x80\x97\xddq\xf2\xfa\xa8\xf5S\n\xf1S\tPW\x16`\x11\xf3FEikS\xbaX\xbc\xcb\xc44\xc5*\xf8PEQ-\x8dwR\xa3L\"59\xedp\x95,\xc0\xe2e\xbb\xa3\xdaT\xdd\xc6c\x9d\x8c\xfc=\x8c|&\x96NM*ImR1\xaeX\xa3\xaf\xbb\xaf/طc\xd19\xfa\xef\x0e(\xe1T6\x11Q\x92\xa9\x8c\x92Ha\x11\xa8-B\xe9\xed\xb7|`\xe3\x89d}\xa9.(\x8b\xd6ӵC\xf1)[\xcbn\xd2\xd4\xee\x10\x99\x06\x1d\x1b\x14˲씝\x86&*\xee\x85֮[x\xd4\xf2\x11\xd9\xd1\f\u0558'sxʑ\xac\xe4(\xdc٦Z\xcc\r\xe1\xeb3\xbe\xa8\xb1\xa3\nI,\xcb<\xc6\x1dh\xc9&\xd5\t5\x9ePG\x12\x9a˄D\xb4Ѵ\x1a\xd1X\xe9t\x04K\x144\x89{\xc2\xec[\xc6\xe2\xfa\x18\xbb$\x0eT\xad\xb5\xb6,\x9cJF\xe3\xa3\xe5%۸\x95g\xac\x05,j\"\x18\xa2\xb2Z\x15^ά\x9a0\xc6պ\x96\xa9\x84\x1a\x11\xeb\xd8ȴG[\\Q-\xb3*\xb6\xd25t\x970J\x00W\xe5^2\xabZ\xf9\xcc\xd4\x02:\x02U0QS\x05\x83\xa2:\xd6\xcd4ռ\xe0\xfe0\xd7Nb\xd0>\x84\xca0]0\xb8\xb7\xb7\xbbs\xc0p\xc0\xf6r~5\x92\xbfAʺ\x0e\xe1X<\x11AKT\xca\x00\xac\vp\\\xaa\a\x1c\x1bM9,\xbe\x8bva5\xd0\ue617\xa1KX(\x905\\$\xd4Ꮎ\x8e\x83\xc6\x05*\u1ca8ё\xc1\xf8\x8fq[k\xf41c\xa2\xcc\x18V|\xbe\xa6\xd6L\xea@jRKw\xaa\xba\x86J1o\x16S(F*\xdd8\xd9m\xca\x02=\xb1\x9c\xbf$\xd9\tf(\x93\xae\xe9h6+\xe1;$\xb3k\xfa\tWQ/\xdf\xc5U\xa5\xbbXQ\x89\xe5\xbbp\xc7\xc6\xd1DjDM\xb4܇W\xaa\\\x91\x9bﲖ\x91t<2\xaaIf\xed\x01T\xc4\b\x1e\xcf\b\x98b4G?Ko\x1d\x89\xf8h\xd26\x10<<|\xa0;0 \xaal\xea2V\xfa\xb1\xf0\xd5\x0e\xa2\x1e\xed\xddG;:\a\x86\x03=\x03v\xbd\x04s\x1a(w\xa13b\xf6\x12\xf6v\xf7\x0f\xc8\xf7\x9a\x13\x1bz\xfex,\x1e\xd6\xed#\x1a\xe6\xaf@<\x91p\x18\x89\xf4\xeex$\x13\xab2\x86\xfb5\xac\xbd3\xb6HZ\x9d\xecC/D\xae\xe31\xd5a\xa6PF\xdd\xc6\xcaqflLj\x86\x0e\x84u\xc1\xf8\xb4\xc0>\xecj\x14S\x14\x1b\xc9z6\xcc*\t\x81\x95\x1b\x92q%u\x81\x85G{6\x19Ѣ\x98\xdd\"\x92\x9a\xc8ܩM;0g\x8e\xe1E\xc1\xa1̞\n&(\x99I\xa7\x12\f\x14ΤYo\xd3c\xf1\xa8\x89\xce\xde\x1d\x9d\xa9,>\x8e\"\x88\x1eO\xd8Y\x12gv9Z\x1e\xdd#\x19\xe78*\x0f\x9b\xbd9\xbdǚ\xde\xe3ZX.\xc2p\xd5<\x97\xe2ю\x88\x98\xcabpq\x1c\f\x0e\xf6w\x0f\x1f\f\x1e鶆8\xea\xb3[\xc3\xc1\x01\v\xd8\x15\xbc\xfb\x90\xcd\x1c\x0e\x1e\x16;\x0f\xf4t\u07b9lQƭ^\x90\x9c=ץ\xf2ڥ+\x00ɼ\x80\x92\x19Y\xbdח\x87\xde\xeb\v9[)\fK\xb1\x14+T\xaaG\xe2\x918\x1a\x89\x05\x115a\xc3j\x81E\xc2Ȳ\xa8\xf5\xb8\xea6\x9ee\x11\x97U0L\xa1d\x88\xe7\xe9\xb6\x06\x86\xa8Q5\xacy\xc7\xf0~Ű\x12\xea\x9e\nk\xc6CZ/\xb1겗#\xec\xba\x05\x01\xab\x14\xb6\x99C\xb7+g\x9bx\xf4\x84\x9aq\xe3\xfe ˃\x16AV\xe5-\xd8v}ٱ\x89\xdbD\xbb~\x0eUG\xbb\xb3\x1c \x91\xcfz\x8b^\xeb\xf0\xf5\xd5:\xf2\x80\xf6\re\x84%\xcal\xc4\xe01J\xa4\xcb\xc9i\xe3\xc6\xeb\xeb\x96%)\xb3wO鼛\x16oX\x92ӂ\x1d\xed\xe0\x10N\xa5\xe2IG$\x1e9\xcc\xfc\xab\xb7_\xecH\xa7U\xbc-\x89\x143\xe6\xcfCS\xb4\xf4v\xd2t\xf4\x9eH\xffd\xb4\xf4\xe46\x03\xb7\xb2i\x83\x89`&\xbd%ֽe)J+\xed\x1f\x83\x1b\xd4wǗ\xa42\xf4\x13T\xf5\v\xd0-z\xc5͋\xa46ӛ\x95Oo h{\xab\xb5\xe9\xf8\xd2\xfab\x0f\xcf\xf9\x1e\xbe\xc2\xd4\r\xf3r\xd3J\x99X\\o\xef\xac@\xd5\xf4\xa8n\xe5\xd5%\x8e\xd9x|\xa8U\xc7@\x88/\x0ed҈Ȇ1\xf5\xa6\xa6\xf6m\x15\x1a\xe5\xf47\xef0\xadF\xe9\xdf\xc8\xd8Q\x83I\x93)zىo\xa4\xa7F\x93ZS\xbb\x99\x1b\xdbWޠv\xab^P\x95:K\x87fJ\xb0Ob\xee\xc1\x90\x1bH.\xb7\xbe^\t\xcc[\xe56\xb5w\xdc\xc8;n\xa8\xd4Ŷ\xf3\xfdd3\x18r\xf9L\xd7f\xdf5\xbd\x13z\xbb\xf5Fa\x8a*\xbfRR7z\xa3\xfc\x82\xfcqwI\x82\x92?,e\x9d\x1b;\x84kA%\xd4XӴ\x84\vl]\xec\x00K\xb8\\\xd9\xfe\x98\x9d\xf1\x89 \xf4\xf6\a\x0f\xd9\xcd\xc2%\x1e\x9d\xe6\xa8b73HR\xcbTc\xc5\x1d\x1f\xc5g\xc4@j\xb0\xef\x80\x03[\x9fvoV\xd33U\xa70Q\x98_\xc4\xee\x80F\xae\xa9]\x1cֵDT\xea7\xde\xdbB\x06\xb3\x8f\x13\v\xe7\xca\xd7w\xe6C\\\x18\xcf\xea1\x1b\xab\x9d\x8co\x14LI\xf4*\x93_\x96}\xafg\xdf;\x9dь\x18X\xfa~U\xd3OgR\xe3\xf62)\xf7({߫\x89\xcaC!\x9c\xd0Դ\xbb<\x0f\x18_\x8f\xebU\x03\xddG\xb1\x9a\n\xf6\x1d\xec\x18\x90Q\x16\x83\xa3EM\x88e\xc6\x12U\xfb\a\x0e\x1e\xb0\x10\xf8t&Z=\xc9\x1e\xf4\x83\x03\x01&\x82\xee\xc6L\xbc\u007fx\x1e\rq\x84\x81\xb1\xb4\xd1u\xac=d\xa3\x14\xea\xe9b_^\x84OWc\xf0\xedg\x83\x01,\x064\xc9\xfc\x82\xde٩\x8e\xab#qL\xcdqM\xe7R\xbah\xd8U\xc4,\x99\x9d\x92\xfa\xb4Q|~q'N\xc0(\xaa\x01+\x86\xb0\xb6\xf6\xe4\xf1\x8e\x96cj\xcb}CV\xefo\xb9}xlj\x96\x13\xadC\xcd\xf5\xa8R=#DZ\xe6\x9a\nFa\xf3\xba-\x88\x13P[\xa2\x883tG\xe3\xf1\x93\x95ٙ\xfa&~\x8b\xdf/n\xd9~\x8b\xdf\xcf74l\x85\x06'\x1a\x0e_)q\x96\xd7u~\x1coz-Ԋ\xb5r\x9dS$+\xa1n\x99H\xea<\xd8\x1aj\xbbDbۿڹ\xbagu\xef\xea;W\x1fX}P$\xab\x97\xd5\xfe6\xd4\xfe\x0f\xe0\xc8S\xfb8W\xfb>N$8n\x90\x9c\"H\xd5.a\x99\xdb\xe3]^#\xdbV\x80\xe4\x92kA\x92\x1d\xabpd_-\xaf\x93`\xbd\xabj\xc3/\x81\f\x9c\f\xbc\f\x82\xccI2o\x93\xc1.\x83C\x86*\x19\x9c\xb2X-\x8b.YZ&\x8bnY\xf2ȢW\x16\x97\xcbb\x8d,\xae\x90Q>q\xa5,\xd6\xc9\xe2*Y\\-\xdb\xd6\xc86\xafl[+\xc3:\x19\xd6˰A\x06E\x86\x8d2l\x92a\xb3쨗\x1d^\x19\xb6\xc8R\x83\f>\xd9\xd6$۶ʶ\x16\xd9\xd6&۶ɶ\xed\xb2\xed&\xd9q\xb3\xec\xb8Ev\xdc*;\xde%;n\x93\xe1v\x19v\xc8\xd0.\xc3N\x19v\xc9\xfcn\x19\xee\x90a\x8f,uȰW\x86N\xd9\xd9-C\xc0\xbe\x0fd\xd7!{\x10\xec\x1a\xd8O\x81,鲔\x91\xa5\xac}\x06@\xe6\x1e\xc1\xc3=\x8a\xed1\x1c?\x8e\xfd{\xb1\xbd\x0f\xc7O`\xff$\xb6\xa7\xb0=\x8d\xed\x19l\xef\xc7\xf6,\xb6\xe7\xb0=\x8f\xed\x02\xb6\x17\xc0~\x11\xc0~\t\xdbKH\x0f>\x8c\xcc^\x8358z\tG\x9f\x05\xfb\x9b\f\xfa\x166\xa6\xc6_\xc6\xf6+\xd8>\x87\xedWA\xe6?\x8f\x9c~\rۯc\xfb\r\xb0\u007f\x01\xb85\x9c\xfd5\xa6\xed/\"\xc6o\x81\xbc\xf2k\xd8\xff\x0e\xb6\xdf\x05\xfb\x97\x18\xfc\xeb`\u007f\x1b8\xfb\x97\xb1!\xeaW\xb0\xfb*\x03\xff\x1e\x9e\xeb\xf7\x91\xe1\x1fa\xffmD\xffc\xec\xff\x04\xdb\xdfb\xfb;l\u007f\x8fk\xff\x89\xf0\xff\xc2\xf6cl_\x00\xb9\xee\u007f\xb1\xfd\x1fؗ\xf1\xb2\xf3A\xce\xfe\x10'\xc80\xc3\xe1i\x04<\x8d`\u007f\x04\xe7ң\x9c,=\xc6\xc9k\xde\xcb\xc9k\x9f@6Ob{\n\xc7Oc\xff\f\xb6\xf7s\xf6\xe7ؾ\xe79\xfb\x05ֿ\x80\xb0\x0f\xe0\x9e\x0fb?*Ë\xd8]\xc4v\x89\x93\x9d\x1f\xc6>\xc7ɮ\x8fpk\x04\xbb\x87dz\x8akD<\xab(\xc3\xc7\x10\xfc2\xb6W\xb0}\x8a\x93\xeb>\xcb\xd9\xdf\xe0D{\x03\xdfZ\xfa\x03\x0e\xfb\xfb\x0e\x00g\f8\xc2\xfe8Ě\xc0\x80\"!\x1c/\xf1\xc4\x06N\xa71\x03A(oc\u007f\x02\x92\u037f\x0e\x99\x1f\x161\xce\xf8'\x99\b\xd6߉\x04\x0e]\x9fp\x00\x12Ð\x88\xc0FeR\x1c\xf0<\xe1\xccO\xe0\x90\xbb\xf1\xc1\xf36I2\t\xda\x00\x1f\x98`\xf5x\xa9\xb2F\x04;\xfe#\xe0t\x10\"9\x9dU\x848\x9d\xcejB\\N\xe72$\xea\x06\"x\x80\x88^\x94g9\x10\xb9\x06\b\xdeRb\xaf\x05\xe2X\t\xa4\xca\xc9\xdbe\xe2q\xd41u\xac\x02\xe2]\rd\xf9\x1a 5k\x81\xacX\a\xa4v=\x90\xba\r@V)@Vo\x04\xb2\xc6\xc5\xdb\xedd3\xbf\x89\x1dy3\x90\xfaz [\xb6\xf0\xf6*BQ\xae\x06\t\xa4F\xa8\x96}\xd87C\xa3\xc4I\x14\x9a$^j\x85fI\x90\xfc\xb0U\x12eB%\xd4Q\x8b$\xcbd\x9d\xd8\xea\xe1\u05f7y\x84\r~\x8f\xa8l\xf3H\x1b\xb7{\xe4M>\xe1&\x0f\xdfx\xb3Gh\xba\xc5#6\xdfꑶ\nN\xb0\v@ւ\x13\xcf\xd9\x00.\x81p-\xb0E h\\\x0elv{\xde\u007f\xb2\x816\xc6\x1a\xf61c\x82\xdd\xe1\xc8\xfb\xf3=$\x1f\\F\xf61\xcb\"dm\xde\x1fz\x97\xd7F\x10\xe8&n\xd4Q>t[\xf4\xf6|\xd4\x1d\xdc\xc1\xedc6\xe0\x1c\x0e[\xa8\xbd\xd0pY݉s\xa1\x8as8\xdf\xe2\xf3\xfe\xbb\x9b\xaf\xf85P\xce\xf1c\xc0:aL(o\xdc\xc5凜\xbdN\xa2Vi\x90\x0fx\t\xc3\t\xed\x8e\xde\x11ڭA\x02\xa2{\x82\x1d\x1c.D\xab\x02k\xc8\xcc\x18\x0e\r\xe8ޙ1>O\x0fӻr8\xe5r\xb4/G\xfbst G\as\xf4H\x8eޝ\xa3Gs\xf4\x1ecp,G\x8f\xe7\xe8\x89\x1c\x1d\xcaѓ9:\x9c\xa3\xa1\x1cUst$G\xc39\x1aɩ\x0e\xc6w91\x84\x1ar\x19\xe4;{]\xa0V3\xa6k\x89Ǎ\xa7\xa4Q:Jc\x83\x10\\\xc1\xb9\xbf\x8bs\\Y7o%n\xae|\x8d\x10c{ׅf\x0f\xbazS\x04\xc7\r8v\xe1\xd8\\0 \x97/x\xb7\x95v\x9e\xa6\xa7̕\xf3\xcd\x1et\xd4&\xe5\b\x97\xbd\xcb\t\xc1\xf1\xcc\xd5Ж\xd9\xc0-\xe0\xc5\xc8S\x98U\xf7\x16\xa3{ʈ{LD'\xae\xe0\x84>\x04\x81\xfd\xa0\xee)F;\xe9\xc3p\xb9\xd9#\x19H\x9d\r\x97\x8d\xbd\rjg1\xda\xc5v\xac\x96\x8c\r]j\x17\x13Z\x169\xbb#ȮT\xa8'ګމ\xfd\x81\xe8A\xf5\x10\xf6\xc1\xe8a\xf5\xae!\xa1W@\xbf\xbcR\x88\xf6\xb5@\xb0\x1f\xb0\xaf'͡wE\a\xb0\r\x06\x8f\b\x856P\xefF\xf2G\v>ug\xbe\x10\xbc\a\x18Y\x1b\xd3\xc5\x1eC\x15s\xec\x8cW\xf3\xf4\x03hT\xc8\xd3\x0fB`\x05\xaan.\x1f\xad.\x06\xea\xc1Xz\x11\xe8E\x98\x8d\x1e\xa3\x1f\x82\"\xbd\x84\xa3\xe3\x86\xc7\xe1\xed\xb5\xf3HgW\xde_TjP]\x8c\xd2\\\xb1\xa0\x9e\b\r\xb1}\x86\xb9\xbd\x1eþ\xf9\xa8\xa3\x18P8\x04\xbb\x1de@p#7\x8b\xc2`!aw\xbca\x1a\xe6\xaa2\x13\x16\f:\x05\xefs\x84\xd0\x1c\xb0ߏ\x00\xfd(Џ\x01\xfd8\xd0O\x18\xbf/\x03\xfd$\xd0W\x8c\xdfO\x19\xbf\x9f\x06\xfa*\xd0\xcb@?\x03\x83v$TO\xc2\xe2\xec\xf9\xb0\xe4nC1G\xa4\x11q=R.\x8c\b\x81\x93`\x99\b'\xd1a\xe5\xd5\v^\f\xe1\xc5Y61 \xea\xf0vI\xf4|\xfd\xda5\x9bd\x13\x8b\xf4u\xd4i(\xa0\x92\x9cz\xa2H\xdf\x00u$_\x8c\x9e(\x9aǯ\xe2\xd1:w\xe5\xfd\x85\x90\x18\r磵\x18\xe2\xd80R\x19j\x95a\xb42\x1c\xad\fc\xf9hMeh@Q%NLl\xb6\xcdy\xbfFB\xbc?\x14\xf7\x87N\xf9C\xa7\xfd\xa1\x84?$\xe0\xefQ\xb2\xce\xf8\x89\xd9Q\x86j\xccrB\v\xc6e\x1fm\x8e\xf9N6R\x1ak<\xd9D[cM'\x9b\xa9?\xd6|r\xeb\x1eWl\xebI\xbagY\x8c\x9el\xd9㎵\xe0&\x97(\xf3\xfc\x9bPO\f}\x17\fOm\xf6\xb2\x80T\x88\x8eՓ\u05fd\x18B\x8a\x91B\a\x9c\xbf\xe2~\x14\xfd\xf1y\xfa\x9b\x8b\x10\xea\t\xc1\xddn\xb4\xae\xbd0;\xb4\xb50\x1bM\x16\x03[95\xf96?\x8b(+~p\xed\x9a\xfbPe'\xbbL\x05\xa6\xeb\x1dl_X,0\xcbl^d\x99\x14x1^\xe2\b\xe9\xa1%,\x82\xcc\x1as\xa65\x98j\x96\xf1\x1c\xcf\xdb\x11#4\x8e\xcb\bp\x97\x01\xf7\x9a\x00O\x15\b\"*/O\xbf\x04\n}\x1b|\xf4\xcbؾ\x82\xed\xab\xe0\x1b\x14cuF\xc6Z\xc52\x96\x97\xe7E\xc7\vP\xca>>\xcc+i\x16lU=\x1f\xad\v\xa5\xa3\x99r`T\xb3&d\xa2\xe1\xf2\xf9R8\xab\x8bf/\\8\xafN\x86\xd2\r\xd6\x06\xfa\r\xc0x\x84\xa9m\xca]\x8bn\xee/\xf8\x8f\x91\xe6\xb9f\xff\xd61\f\xa4\xd3>uj\x9d\x8d\x9bǁ\x91\x98<_\x8a\x87u\xd1)\xa4v\x1f\x83\aV\x13\xf5\xfe}\xd0\xd5\u007f\xb7\xed\f\x9c\xc5R\x84,\xafFI\xd3\xf3\x04\xd5PT\xfaM\b5R\xa0\u007f\x00\x8609\x9aǨX\x00Z\x04:\v\xa1\xa6\x1c\xfdC\x9c_\x81P\xb39\x9a\x03z\x15h\xe4H\x15\xfd\x16\x04\xdemJ:\x06\xee\x15\x8b$5ȣ\xa0L\xcc\xfdP5p\x14ex\x0f\x93\xa1\x06P\xb16T,c\x86\x8a^\xc1\xe1|\x859\x9f\x9c0\xdd\xc38\xc6\x04.ֲ\xc5\x1a\\\xc4 0o\xed~\xb6\xb6\x12\xd5.\xae\x19j)\x04Z\xe0\xdc9\xb8\x12z\x00\xf2\x85@\aw~n\x88\x16\x03\x14\x10\xa5\xaeF\x10\xe5\xcf\x19\x96\xb9j\xd4\x05\xf2\x18\x8f\xdd̘\xa0A\x81\xc9Xd\x99>\xc1)563YAp\x030^\xdes,\x0f\xeeYin\b\xf9\xd8R\x0e\xb7\x19j\x17X\xee3r\xd97\x17i\xedO\x81~\xc7(\x1c\xcc韱\xb1`\x8e\xff\x1cP\xc5\xdf\x05\xfa=\xa0\u007f\x01\xf4/\x81~\x1f\xe8_\x01\xfd\x01\xd0\x1f\x02\xd3\xe9_\x03\xfd\x1b\xa6\xd6\xe5\xa6Z\x83\n`n<\x0fXE\x92\a\xb0,\x94Ƀ@x\x99<\x84\xe5\xa1DVU\xf3\x82x\x8f\x91\x1e\ri\xefļ\xe5+\xe4f\xe6B\xe9\xa2rc\xc9\n9\xfa\x0f8\x06\xfa\x8f@\xff\t\xe8?/`\xec\x9cǘ\xacv\b\x82\x98Ō1t\xfej\x01\x15\xcf\xf2\x8ca\x03\xef\tBL\xf5\xa2\xca\xe7\x96b\xf3#\xa0\xff\x02\xf4_\x81\xfe\x1b\xe3\xf7\xef\b\xfc\x0f\x83O\xe4\x88\xc3\xe40s\x05o\x80\x12J\x17\x8e@1\x80\x0f2f\xb2\xabC-\xb3h\xc6\xf3WY(_#\x8a\x82\xf8\xac\x91\xfdY\x00\x16\nއ\xd0:\xec\x9c\xcbY\xd4W\xf2\xa5\x9dX\xb2\xb9\xe3\fT\x17\xbd\xcf\x13\xc2@\x0f\x06\xbe\xbb\x01C\xc2l\xe8a(\xb2\xfb\x1fx\x04\xd0tWG\x84z\xc8\x15\xa3\x8f\x82\x13\xcf2K\xff\x1brW\xdf\x16F\x04\x06Y\x91\xbfvm\xe81\x18z\x1c\xe85&\xf39.7Dg\xf1\x889\xfa\x00\x97\xeb}\x1c\x80\x9e炏\x01\v\xd6k1\xa6\xf2\xee\xbc\u007f\xe8\xbd\xc0\x82*\u007f\x14\xd6Ŝ\b_\x87`\x01\vP\x1c\xaeG\xf1푒ϕ\xdc,\xf4>\xb3\xa2|\x02\x82O\x02\x1brѧ\xa0A}\x02ܷ\xb2\x9b3\xcbnNX\xb0\xae\x8e\xb1\xe8\xc3Ec\xf84\x84\\\x1a\x97\x00\xfa\x10G\x1f\xe6\x02\xdb\xf9\xe03\x80WK\xd8\a\xee\xa6\x16\xdb\x19\xee\xfd\xc0J\xa8g\xd1Kx\xb2\x811\xff\x12_\xf1\xf8\xe7\x80ypY\x8a\xe7!z\x01\x82/\x00\xb1\x84\xb1\x82\xb6\xbdT9>\x01\x13\xde\xe3F\r\xc8D0\xd1C\x1f\x80\xe8\aK\xd2\a^\x04\xeeg\x96\xfa\xd9yR\x1bt.^\xc7\xf8\xe2\r\x18\u007f\b\xace\x83\xf1\xc5\nc\xb8\x8e\xf1\xc5E\x8c\x9f[\x82\xf1\xa5\xeb\x18_B\xc6O2\xc6C\xcfA\xefs@,\x8d%xk5\xf8\x92a.\x1eo\x81U\x12\xf3\xe83,{\xad_B\xdc\x0f\x1b\xb8\x86\xac\x97*\xb2r\xd7\xc9zi\x91\xac\x17\x16ʺ\x8fߣj\xb63\x9f\x87o\xc3w\xc0v\xe6M\xeea\xfeq\xdev\x86\x9fo\xea\x1c\x06\x04\x94W\xe18^\x18\xc6\xd8k%I\x96iؕ\xed1\xd2l\xd9\u00925\x9dh\xf6\xac0\x86\x17\x17\xae\\\xac\xac\\Z\xb8\x82\n\xc2K\xb9\x91\x13x!\x9e\xf7\xfb\xe6|W\x17\xb2\xf2\x060\xdd.\xc1hb\xeegc2qu\xf6\x82I\xb3\xc8\x18nr\"\xc3my?\x1d-D\xb1t{\x91+D\xb1|\xbb\x88\x1d\x96p\x1f\xe2\n\x81\x8f\x03\xa9<@^\xe2\x8a\xd4=;(\xe1\xc6\xcd\x02'\x88\xf5\x983B\x9f\x80\xe8\xcbh\xa9z1\xf0I\xe0\xb0\xfa\xa2\x1f\xe5._\x88mb\x99\xbb\x10\xdc\xcc\xe2\\=\x8f\xb8^\xc4\xcdG7M\x98\xc4\n\x13\xea&\\\xd9\xc2˂\xf8\xb2\x19\x84|V5Y\x1c$\xeaSPd.VDc\xcf\xfa\xd4W`^\xfd\x11r\x15\x02~\xf0\"\x0f6\xda\x06\x13a\x01\xb9\xe3\x8b\vK\xf8\xa6\x11a\x82\x91\xc0\x95b\xb0\x953\xa5\xf2\x9a\xf0ғ\xe0)v\r/\x94\xb1ڸ\"\x1e\xba\xa1\x14\x97>e\xc5%n]̅,|\x95\xb8\xd4(J\xbc\xf0\n\x9e\xa8\x9e\xb0W\x8bQ\xaf\xadv\xb2\x17O!p3\xab\xd1\x1e\xabTZ6\xc3(\x9f6ܼ\x81\x15[sn/+Ҋ\x88\\\x8c\xbe\xca^F\xea\xab\xf06WdH+\xbe\x8feځ%ʴی2M@5\x89\xec5h\x1f\x11G\x04T\x13\xaa\xe72\x80w\x19{\xed \xbd\xd92\xbd\xed\xa2\xe0\xf9\x16*I\xb4\t\xacHk\x12г\xfd\xe8\x01\x0f\x82\xe9*\x96\xbf\xd5\xe1\xc6\xd0g\xb0\x8e\xe7\xe8'\xb8\xbd\x1c\xf6\x81׀\x9bqs,\x03\xe0\xbefv#|\xf3\xf61\xc5\x16.\xa0s!\xcb&\xb6\xf3\x93\xdc^(\x04^\aó\xb7\n2/<\xcc\xe5\xfd\x8d\xf3\xdf\r?B&\xf8\x0e\f|\x16 {u\xb6\xfe\xda*\x17\x13\x17s\b\xfa\x12X\xbcf\xae\x14觹2\xcae\xe6˅\x197\x9a\xa9POf\x99\xd3\xcd \nc\xf8\xaa%*\x18\x92\x9a\xb0\xcb\x16\xec3\xdc<\xe0k\x16\xf0\xf5\x12Ћ\tn\xe8\r(\xf4\xbe\x01\xecE\xc5ܮ\xc8\xdcn\u07fc\xb2\xb7Xz\x90\xb0\x00Œޫ\x10:\ao͟\xa3\x99&\x8c\xe7\xe6\x88`\x02\x02o\x02\tI\x8f0\xad\xa3k\xbei=T\xf6\xb3ca\xc9%\x19\xdf\xc8 \x8f\x96\x92_\xbde\xf9\x15\xbf.\xb6\x85ռ\xcb\xd9w\\\v\xff[\xf6\x1e\x84\xfc?\v\xc4\xca\"") + +func scripts_zeroclipboard_swf() ([]byte, error) { + return _scripts_zeroclipboard_swf, nil +} + var _scripts_oldieshim_js = []byte(`!function(a, b) { "function" == typeof define && define.amd ? define(b) :"object" == typeof exports ? module.exports = b() :a.returnExports = b(); }(this, function() { @@ -14160,7 +14173,7 @@ var e = d.imageChangeParams.from.name, f = b.parameters.output.to.name; if (e !== f) continue; var g = d.imageChangeParams.from.namespace || a.metadata.namespace, h = b.parameters.output.to.namespace || b.metadata.namespace; if (g !== h) continue; -var i = d.imageChangeParams.tag, j = b.parameters.output.tag; +var i = d.imageChangeParams.tag, j = b.parameters.output.tag || "latest"; if (i !== j) continue; d.builds = d.builds || {}, d.builds[b.metadata.name] = b; } @@ -14622,6 +14635,34 @@ c && c.is("a") || $("a.tile-target", b).trigger("click"); }); } }; +}).directive("clickToReveal", function() { +return { +restrict:"A", +transclude:!0, +scope:{ +linkText:"@" +}, +templateUrl:"views/directives/_click-to-reveal.html", +link:function(a, b) { +$(".reveal-contents-link", b).click(function() { +$(this).hide(), $(".reveal-contents", b).show(); +}); +} +}; +}).directive("copyToClipboardButton", function() { +return { +restrict:"E", +scope:{ +clipboardText:"=" +}, +templateUrl:"views/directives/_copy-to-clipboard.html", +link:function(a, b) { +ZeroClipboard.isFlashUnusable() ? $(b).hide() :(new ZeroClipboard($("button", b)), $("#global-zeroclipboard-html-bridge").tooltip({ +title:"Copy to clipboard", +placement:"bottom" +})); +} +}; }), angular.module("openshiftConsole").directive("labels", function() { return { restrict:"E", @@ -32600,7 +32641,878 @@ return b.keyCode === p && "" === this.$control_input.val() && !this.$activeItems }; }(); }), L; -});`) +}), function(a, b) { +"use strict"; +var c, d, e, f = a, g = f.document, h = f.navigator, i = f.setTimeout, j = f.clearTimeout, k = f.setInterval, l = f.clearInterval, m = f.getComputedStyle, n = f.encodeURIComponent, o = f.ActiveXObject, p = f.Error, q = f.Number.parseInt || f.parseInt, r = f.Number.parseFloat || f.parseFloat, s = f.Number.isNaN || f.isNaN, t = f.Date.now, u = f.Object.keys, v = f.Object.defineProperty, w = f.Object.prototype.hasOwnProperty, x = f.Array.prototype.slice, y = function() { +var a = function(a) { +return a; +}; +if ("function" == typeof f.wrap && "function" == typeof f.unwrap) try { +var b = g.createElement("div"), c = f.unwrap(b); +1 === b.nodeType && c && 1 === c.nodeType && (a = f.unwrap); +} catch (d) {} +return a; +}(), z = function(a) { +return x.call(a, 0); +}, A = function() { +var a, c, d, e, f, g, h = z(arguments), i = h[0] || {}; +for (a = 1, c = h.length; c > a; a++) if (null != (d = h[a])) for (e in d) w.call(d, e) && (f = i[e], g = d[e], i !== g && g !== b && (i[e] = g)); +return i; +}, B = function(a) { +var b, c, d, e; +if ("object" != typeof a || null == a || "number" == typeof a.nodeType) b = a; else if ("number" == typeof a.length) for (b = [], c = 0, d = a.length; d > c; c++) w.call(a, c) && (b[c] = B(a[c])); else { +b = {}; +for (e in a) w.call(a, e) && (b[e] = B(a[e])); +} +return b; +}, C = function(a, b) { +for (var c = {}, d = 0, e = b.length; e > d; d++) b[d] in a && (c[b[d]] = a[b[d]]); +return c; +}, D = function(a, b) { +var c = {}; +for (var d in a) -1 === b.indexOf(d) && (c[d] = a[d]); +return c; +}, E = function(a) { +if (a) for (var b in a) w.call(a, b) && delete a[b]; +return a; +}, F = function(a, b) { +if (a && 1 === a.nodeType && a.ownerDocument && b && (1 === b.nodeType && b.ownerDocument && b.ownerDocument === a.ownerDocument || 9 === b.nodeType && !b.ownerDocument && b === a.ownerDocument)) do { +if (a === b) return !0; +a = a.parentNode; +} while (a); +return !1; +}, G = function(a) { +var b; +return "string" == typeof a && a && (b = a.split("#")[0].split("?")[0], b = a.slice(0, a.lastIndexOf("/") + 1)), b; +}, H = function(a) { +var b, c; +return "string" == typeof a && a && (c = a.match(/^(?:|[^:@]*@|.+\)@(?=http[s]?|file)|.+?\s+(?: at |@)(?:[^:\(]+ )*[\(]?)((?:http[s]?|file):\/\/[\/]?.+?\/[^:\)]*?)(?::\d+)(?::\d+)?/), c && c[1] ? b = c[1] :(c = a.match(/\)@((?:http[s]?|file):\/\/[\/]?.+?\/[^:\)]*?)(?::\d+)(?::\d+)?/), c && c[1] && (b = c[1]))), b; +}, I = function() { +var a, b; +try { +throw new p(); +} catch (c) { +b = c; +} +return b && (a = b.sourceURL || b.fileName || H(b.stack)), a; +}, J = function() { +var a, c, d; +if (g.currentScript && (a = g.currentScript.src)) return a; +if (c = g.getElementsByTagName("script"), 1 === c.length) return c[0].src || b; +if ("readyState" in c[0]) for (d = c.length; d--; ) if ("interactive" === c[d].readyState && (a = c[d].src)) return a; +return "loading" === g.readyState && (a = c[c.length - 1].src) ? a :(a = I()) ? a :b; +}, K = function() { +var a, c, d, e = g.getElementsByTagName("script"); +for (a = e.length; a--; ) { +if (!(d = e[a].src)) { +c = null; +break; +} +if (d = G(d), null == c) c = d; else if (c !== d) { +c = null; +break; +} +} +return c || b; +}, L = function() { +var a = G(J()) || K() || ""; +return a + "ZeroClipboard.swf"; +}, M = function() { +return null == a.opener && (!!a.top && a != a.top || !!a.parent && a != a.parent); +}(), N = { +bridge:null, +version:"0.0.0", +pluginType:"unknown", +disabled:null, +outdated:null, +sandboxed:null, +unavailable:null, +degraded:null, +deactivated:null, +overdue:null, +ready:null +}, O = "11.0.0", P = {}, Q = {}, R = null, S = 0, T = 0, U = { +ready:"Flash communication is established", +error:{ +"flash-disabled":"Flash is disabled or not installed. May also be attempting to run Flash in a sandboxed iframe, which is impossible.", +"flash-outdated":"Flash is too outdated to support ZeroClipboard", +"flash-sandboxed":"Attempting to run Flash in a sandboxed iframe, which is impossible", +"flash-unavailable":"Flash is unable to communicate bidirectionally with JavaScript", +"flash-degraded":"Flash is unable to preserve data fidelity when communicating with JavaScript", +"flash-deactivated":"Flash is too outdated for your browser and/or is configured as click-to-activate.\nThis may also mean that the ZeroClipboard SWF object could not be loaded, so please check your `+"`"+`swfPath`+"`"+` configuration and/or network connectivity.\nMay also be attempting to run Flash in a sandboxed iframe, which is impossible.", +"flash-overdue":"Flash communication was established but NOT within the acceptable time limit", +"version-mismatch":"ZeroClipboard JS version number does not match ZeroClipboard SWF version number", +"clipboard-error":"At least one error was thrown while ZeroClipboard was attempting to inject your data into the clipboard", +"config-mismatch":"ZeroClipboard configuration does not match Flash's reality", +"swf-not-found":"The ZeroClipboard SWF object could not be loaded, so please check your `+"`"+`swfPath`+"`"+` configuration and/or network connectivity" +} +}, V = [ "flash-unavailable", "flash-degraded", "flash-overdue", "version-mismatch", "config-mismatch", "clipboard-error" ], W = [ "flash-disabled", "flash-outdated", "flash-sandboxed", "flash-unavailable", "flash-degraded", "flash-deactivated", "flash-overdue" ], X = new RegExp("^flash-(" + W.map(function(a) { +return a.replace(/^flash-/, ""); +}).join("|") + ")$"), Y = new RegExp("^flash-(" + W.slice(1).map(function(a) { +return a.replace(/^flash-/, ""); +}).join("|") + ")$"), Z = { +swfPath:L(), +trustedDomains:a.location.host ? [ a.location.host ] :[], +cacheBust:!0, +forceEnhancedClipboard:!1, +flashLoadTimeout:3e4, +autoActivate:!0, +bubbleEvents:!0, +containerId:"global-zeroclipboard-html-bridge", +containerClass:"global-zeroclipboard-container", +swfObjectId:"global-zeroclipboard-flash-bridge", +hoverClass:"zeroclipboard-is-hover", +activeClass:"zeroclipboard-is-active", +forceHandCursor:!1, +title:null, +zIndex:999999999 +}, $ = function(a) { +if ("object" == typeof a && null !== a) for (var b in a) if (w.call(a, b)) if (/^(?:forceHandCursor|title|zIndex|bubbleEvents)$/.test(b)) Z[b] = a[b]; else if (null == N.bridge) if ("containerId" === b || "swfObjectId" === b) { +if (!na(a[b])) throw new Error("The specified `+"`"+`" + b + "`+"`"+` value is not valid as an HTML4 Element ID"); +Z[b] = a[b]; +} else Z[b] = a[b]; +{ +if ("string" != typeof a || !a) return B(Z); +if (w.call(Z, a)) return Z[a]; +} +}, _ = function() { +return Ta(), { +browser:C(h, [ "userAgent", "platform", "appName" ]), +flash:D(N, [ "bridge" ]), +zeroclipboard:{ +version:Va.version, +config:Va.config() +} +}; +}, aa = function() { +return !!(N.disabled || N.outdated || N.sandboxed || N.unavailable || N.degraded || N.deactivated); +}, ba = function(a, d) { +var e, f, g, h = {}; +if ("string" == typeof a && a) g = a.toLowerCase().split(/\s+/); else if ("object" == typeof a && a && "undefined" == typeof d) for (e in a) w.call(a, e) && "string" == typeof e && e && "function" == typeof a[e] && Va.on(e, a[e]); +if (g && g.length) { +for (e = 0, f = g.length; f > e; e++) a = g[e].replace(/^on/, ""), h[a] = !0, P[a] || (P[a] = []), P[a].push(d); +if (h.ready && N.ready && Va.emit({ +type:"ready" +}), h.error) { +for (e = 0, f = W.length; f > e; e++) if (N[W[e].replace(/^flash-/, "")] === !0) { +Va.emit({ +type:"error", +name:W[e] +}); +break; +} +c !== b && Va.version !== c && Va.emit({ +type:"error", +name:"version-mismatch", +jsVersion:Va.version, +swfVersion:c +}); +} +} +return Va; +}, ca = function(a, b) { +var c, d, e, f, g; +if (0 === arguments.length) f = u(P); else if ("string" == typeof a && a) f = a.split(/\s+/); else if ("object" == typeof a && a && "undefined" == typeof b) for (c in a) w.call(a, c) && "string" == typeof c && c && "function" == typeof a[c] && Va.off(c, a[c]); +if (f && f.length) for (c = 0, d = f.length; d > c; c++) if (a = f[c].toLowerCase().replace(/^on/, ""), g = P[a], g && g.length) if (b) for (e = g.indexOf(b); -1 !== e; ) g.splice(e, 1), e = g.indexOf(b, e); else g.length = 0; +return Va; +}, da = function(a) { +var b; +return b = "string" == typeof a && a ? B(P[a]) || null :B(P); +}, ea = function(a) { +var b, c, d; +return a = oa(a), a && !va(a) ? "ready" === a.type && N.overdue === !0 ? Va.emit({ +type:"error", +name:"flash-overdue" +}) :(b = A({}, a), ta.call(this, b), "copy" === a.type && (d = Da(Q), c = d.data, R = d.formatMap), c) :void 0; +}, fa = function() { +var a = N.sandboxed; +if (Ta(), "boolean" != typeof N.ready && (N.ready = !1), N.sandboxed !== a && N.sandboxed === !0) N.ready = !1, Va.emit({ +type:"error", +name:"flash-sandboxed" +}); else if (!Va.isFlashUnusable() && null === N.bridge) { +var b = Z.flashLoadTimeout; +"number" == typeof b && b >= 0 && (S = i(function() { +"boolean" != typeof N.deactivated && (N.deactivated = !0), N.deactivated === !0 && Va.emit({ +type:"error", +name:"flash-deactivated" +}); +}, b)), N.overdue = !1, Ba(); +} +}, ga = function() { +Va.clearData(), Va.blur(), Va.emit("destroy"), Ca(), Va.off(); +}, ha = function(a, b) { +var c; +if ("object" == typeof a && a && "undefined" == typeof b) c = a, Va.clearData(); else { +if ("string" != typeof a || !a) return; +c = {}, c[a] = b; +} +for (var d in c) "string" == typeof d && d && w.call(c, d) && "string" == typeof c[d] && c[d] && (Q[d] = c[d]); +}, ia = function(a) { +"undefined" == typeof a ? (E(Q), R = null) :"string" == typeof a && w.call(Q, a) && delete Q[a]; +}, ja = function(a) { +return "undefined" == typeof a ? B(Q) :"string" == typeof a && w.call(Q, a) ? Q[a] :void 0; +}, ka = function(a) { +if (a && 1 === a.nodeType) { +d && (La(d, Z.activeClass), d !== a && La(d, Z.hoverClass)), d = a, Ka(a, Z.hoverClass); +var b = a.getAttribute("title") || Z.title; +if ("string" == typeof b && b) { +var c = Aa(N.bridge); +c && c.setAttribute("title", b); +} +var e = Z.forceHandCursor === !0 || "pointer" === Ma(a, "cursor"); +Ra(e), Qa(); +} +}, la = function() { +var a = Aa(N.bridge); +a && (a.removeAttribute("title"), a.style.left = "0px", a.style.top = "-9999px", a.style.width = "1px", a.style.height = "1px"), d && (La(d, Z.hoverClass), La(d, Z.activeClass), d = null); +}, ma = function() { +return d || null; +}, na = function(a) { +return "string" == typeof a && a && /^[A-Za-z][A-Za-z0-9_:\-\.]*$/.test(a); +}, oa = function(a) { +var b; +if ("string" == typeof a && a ? (b = a, a = {}) :"object" == typeof a && a && "string" == typeof a.type && a.type && (b = a.type), b) { +b = b.toLowerCase(), !a.target && (/^(copy|aftercopy|_click)$/.test(b) || "error" === b && "clipboard-error" === a.name) && (a.target = e), A(a, { +type:b, +target:a.target || d || null, +relatedTarget:a.relatedTarget || null, +currentTarget:N && N.bridge || null, +timeStamp:a.timeStamp || t() || null +}); +var c = U[a.type]; +return "error" === a.type && a.name && c && (c = c[a.name]), c && (a.message = c), "ready" === a.type && A(a, { +target:null, +version:N.version +}), "error" === a.type && (X.test(a.name) && A(a, { +target:null, +minimumVersion:O +}), Y.test(a.name) && A(a, { +version:N.version +})), "copy" === a.type && (a.clipboardData = { +setData:Va.setData, +clearData:Va.clearData +}), "aftercopy" === a.type && (a = Ea(a, R)), a.target && !a.relatedTarget && (a.relatedTarget = pa(a.target)), qa(a); +} +}, pa = function(a) { +var b = a && a.getAttribute && a.getAttribute("data-clipboard-target"); +return b ? g.getElementById(b) :null; +}, qa = function(a) { +if (a && /^_(?:click|mouse(?:over|out|down|up|move))$/.test(a.type)) { +var c = a.target, d = "_mouseover" === a.type && a.relatedTarget ? a.relatedTarget :b, e = "_mouseout" === a.type && a.relatedTarget ? a.relatedTarget :b, h = Na(c), i = f.screenLeft || f.screenX || 0, j = f.screenTop || f.screenY || 0, k = g.body.scrollLeft + g.documentElement.scrollLeft, l = g.body.scrollTop + g.documentElement.scrollTop, m = h.left + ("number" == typeof a._stageX ? a._stageX :0), n = h.top + ("number" == typeof a._stageY ? a._stageY :0), o = m - k, p = n - l, q = i + o, r = j + p, s = "number" == typeof a.movementX ? a.movementX :0, t = "number" == typeof a.movementY ? a.movementY :0; +delete a._stageX, delete a._stageY, A(a, { +srcElement:c, +fromElement:d, +toElement:e, +screenX:q, +screenY:r, +pageX:m, +pageY:n, +clientX:o, +clientY:p, +x:o, +y:p, +movementX:s, +movementY:t, +offsetX:0, +offsetY:0, +layerX:0, +layerY:0 +}); +} +return a; +}, ra = function(a) { +var b = a && "string" == typeof a.type && a.type || ""; +return !/^(?:(?:before)?copy|destroy)$/.test(b); +}, sa = function(a, b, c, d) { +d ? i(function() { +a.apply(b, c); +}, 0) :a.apply(b, c); +}, ta = function(a) { +if ("object" == typeof a && a && a.type) { +var b = ra(a), c = P["*"] || [], d = P[a.type] || [], e = c.concat(d); +if (e && e.length) { +var g, h, i, j, k, l = this; +for (g = 0, h = e.length; h > g; g++) i = e[g], j = l, "string" == typeof i && "function" == typeof f[i] && (i = f[i]), "object" == typeof i && i && "function" == typeof i.handleEvent && (j = i, i = i.handleEvent), "function" == typeof i && (k = A({}, a), sa(i, j, [ k ], b)); +} +return this; +} +}, ua = function(a) { +var b = null; +return (M === !1 || a && "error" === a.type && a.name && -1 !== V.indexOf(a.name)) && (b = !1), b; +}, va = function(a) { +var b = a.target || d || null, f = "swf" === a._source; +switch (delete a._source, a.type) { +case "error": +var g = "flash-sandboxed" === a.name || ua(a); +"boolean" == typeof g && (N.sandboxed = g), -1 !== W.indexOf(a.name) ? A(N, { +disabled:"flash-disabled" === a.name, +outdated:"flash-outdated" === a.name, +unavailable:"flash-unavailable" === a.name, +degraded:"flash-degraded" === a.name, +deactivated:"flash-deactivated" === a.name, +overdue:"flash-overdue" === a.name, +ready:!1 +}) :"version-mismatch" === a.name && (c = a.swfVersion, A(N, { +disabled:!1, +outdated:!1, +unavailable:!1, +degraded:!1, +deactivated:!1, +overdue:!1, +ready:!1 +})), Pa(); +break; + +case "ready": +c = a.swfVersion; +var h = N.deactivated === !0; +A(N, { +disabled:!1, +outdated:!1, +sandboxed:!1, +unavailable:!1, +degraded:!1, +deactivated:!1, +overdue:h, +ready:!h +}), Pa(); +break; + +case "beforecopy": +e = b; +break; + +case "copy": +var i, j, k = a.relatedTarget; +!Q["text/html"] && !Q["text/plain"] && k && (j = k.value || k.outerHTML || k.innerHTML) && (i = k.value || k.textContent || k.innerText) ? (a.clipboardData.clearData(), a.clipboardData.setData("text/plain", i), j !== i && a.clipboardData.setData("text/html", j)) :!Q["text/plain"] && a.target && (i = a.target.getAttribute("data-clipboard-text")) && (a.clipboardData.clearData(), a.clipboardData.setData("text/plain", i)); +break; + +case "aftercopy": +wa(a), Va.clearData(), b && b !== Ja() && b.focus && b.focus(); +break; + +case "_mouseover": +Va.focus(b), Z.bubbleEvents === !0 && f && (b && b !== a.relatedTarget && !F(a.relatedTarget, b) && xa(A({}, a, { +type:"mouseenter", +bubbles:!1, +cancelable:!1 +})), xa(A({}, a, { +type:"mouseover" +}))); +break; + +case "_mouseout": +Va.blur(), Z.bubbleEvents === !0 && f && (b && b !== a.relatedTarget && !F(a.relatedTarget, b) && xa(A({}, a, { +type:"mouseleave", +bubbles:!1, +cancelable:!1 +})), xa(A({}, a, { +type:"mouseout" +}))); +break; + +case "_mousedown": +Ka(b, Z.activeClass), Z.bubbleEvents === !0 && f && xa(A({}, a, { +type:a.type.slice(1) +})); +break; + +case "_mouseup": +La(b, Z.activeClass), Z.bubbleEvents === !0 && f && xa(A({}, a, { +type:a.type.slice(1) +})); +break; + +case "_click": +e = null, Z.bubbleEvents === !0 && f && xa(A({}, a, { +type:a.type.slice(1) +})); +break; + +case "_mousemove": +Z.bubbleEvents === !0 && f && xa(A({}, a, { +type:a.type.slice(1) +})); +} +return /^_(?:click|mouse(?:over|out|down|up|move))$/.test(a.type) ? !0 :void 0; +}, wa = function(a) { +if (a.errors && a.errors.length > 0) { +var b = B(a); +A(b, { +type:"error", +name:"clipboard-error" +}), delete b.success, i(function() { +Va.emit(b); +}, 0); +} +}, xa = function(a) { +if (a && "string" == typeof a.type && a) { +var b, c = a.target || null, d = c && c.ownerDocument || g, e = { +view:d.defaultView || f, +canBubble:!0, +cancelable:!0, +detail:"click" === a.type ? 1 :0, +button:"number" == typeof a.which ? a.which - 1 :"number" == typeof a.button ? a.button :d.createEvent ? 0 :1 +}, h = A(e, a); +c && d.createEvent && c.dispatchEvent && (h = [ h.type, h.canBubble, h.cancelable, h.view, h.detail, h.screenX, h.screenY, h.clientX, h.clientY, h.ctrlKey, h.altKey, h.shiftKey, h.metaKey, h.button, h.relatedTarget ], b = d.createEvent("MouseEvents"), b.initMouseEvent && (b.initMouseEvent.apply(b, h), b._source = "js", c.dispatchEvent(b))); +} +}, ya = function() { +var a = Z.flashLoadTimeout; +if ("number" == typeof a && a >= 0) { +var b = Math.min(1e3, a / 10), c = Z.swfObjectId + "_fallbackContent"; +T = k(function() { +var a = g.getElementById(c); +Oa(a) && (Pa(), N.deactivated = null, Va.emit({ +type:"error", +name:"swf-not-found" +})); +}, b); +} +}, za = function() { +var a = g.createElement("div"); +return a.id = Z.containerId, a.className = Z.containerClass, a.style.position = "absolute", a.style.left = "0px", a.style.top = "-9999px", a.style.width = "1px", a.style.height = "1px", a.style.zIndex = "" + Sa(Z.zIndex), a; +}, Aa = function(a) { +for (var b = a && a.parentNode; b && "OBJECT" === b.nodeName && b.parentNode; ) b = b.parentNode; +return b || null; +}, Ba = function() { +var a, b = N.bridge, c = Aa(b); +if (!b) { +var d = Ia(f.location.host, Z), e = "never" === d ? "none" :"all", h = Ga(A({ +jsVersion:Va.version +}, Z)), i = Z.swfPath + Fa(Z.swfPath, Z); +c = za(); +var j = g.createElement("div"); +c.appendChild(j), g.body.appendChild(c); +var k = g.createElement("div"), l = "activex" === N.pluginType; +k.innerHTML = '" + (l ? '' :"") + '
 
', b = k.firstChild, k = null, y(b).ZeroClipboard = Va, c.replaceChild(b, j), ya(); +} +return b || (b = g[Z.swfObjectId], b && (a = b.length) && (b = b[a - 1]), !b && c && (b = c.firstChild)), N.bridge = b || null, b; +}, Ca = function() { +var a = N.bridge; +if (a) { +var d = Aa(a); +d && ("activex" === N.pluginType && "readyState" in a ? (a.style.display = "none", function e() { +if (4 === a.readyState) { +for (var b in a) "function" == typeof a[b] && (a[b] = null); +a.parentNode && a.parentNode.removeChild(a), d.parentNode && d.parentNode.removeChild(d); +} else i(e, 10); +}()) :(a.parentNode && a.parentNode.removeChild(a), d.parentNode && d.parentNode.removeChild(d))), Pa(), N.ready = null, N.bridge = null, N.deactivated = null, c = b; +} +}, Da = function(a) { +var b = {}, c = {}; +if ("object" == typeof a && a) { +for (var d in a) if (d && w.call(a, d) && "string" == typeof a[d] && a[d]) switch (d.toLowerCase()) { +case "text/plain": +case "text": +case "air:text": +case "flash:text": +b.text = a[d], c.text = d; +break; + +case "text/html": +case "html": +case "air:html": +case "flash:html": +b.html = a[d], c.html = d; +break; + +case "application/rtf": +case "text/rtf": +case "rtf": +case "richtext": +case "air:rtf": +case "flash:rtf": +b.rtf = a[d], c.rtf = d; +} +return { +data:b, +formatMap:c +}; +} +}, Ea = function(a, b) { +if ("object" != typeof a || !a || "object" != typeof b || !b) return a; +var c = {}; +for (var d in a) if (w.call(a, d)) if ("errors" === d) { +c[d] = a[d] ? a[d].slice() :[]; +for (var e = 0, f = c[d].length; f > e; e++) c[d][e].format = b[c[d][e].format]; +} else if ("success" !== d && "data" !== d) c[d] = a[d]; else { +c[d] = {}; +var g = a[d]; +for (var h in g) h && w.call(g, h) && w.call(b, h) && (c[d][b[h]] = g[h]); +} +return c; +}, Fa = function(a, b) { +var c = null == b || b && b.cacheBust === !0; +return c ? (-1 === a.indexOf("?") ? "?" :"&") + "noCache=" + t() :""; +}, Ga = function(a) { +var b, c, d, e, g = "", h = []; +if (a.trustedDomains && ("string" == typeof a.trustedDomains ? e = [ a.trustedDomains ] :"object" == typeof a.trustedDomains && "length" in a.trustedDomains && (e = a.trustedDomains)), e && e.length) for (b = 0, c = e.length; c > b; b++) if (w.call(e, b) && e[b] && "string" == typeof e[b]) { +if (d = Ha(e[b]), !d) continue; +if ("*" === d) { +h.length = 0, h.push(d); +break; +} +h.push.apply(h, [ d, "//" + d, f.location.protocol + "//" + d ]); +} +return h.length && (g += "trustedOrigins=" + n(h.join(","))), a.forceEnhancedClipboard === !0 && (g += (g ? "&" :"") + "forceEnhancedClipboard=true"), "string" == typeof a.swfObjectId && a.swfObjectId && (g += (g ? "&" :"") + "swfObjectId=" + n(a.swfObjectId)), "string" == typeof a.jsVersion && a.jsVersion && (g += (g ? "&" :"") + "jsVersion=" + n(a.jsVersion)), g; +}, Ha = function(a) { +if (null == a || "" === a) return null; +if (a = a.replace(/^\s+|\s+$/g, ""), "" === a) return null; +var b = a.indexOf("//"); +a = -1 === b ? a :a.slice(b + 2); +var c = a.indexOf("/"); +return a = -1 === c ? a :-1 === b || 0 === c ? null :a.slice(0, c), a && ".swf" === a.slice(-4).toLowerCase() ? null :a || null; +}, Ia = function() { +var a = function(a) { +var b, c, d, e = []; +if ("string" == typeof a && (a = [ a ]), "object" != typeof a || !a || "number" != typeof a.length) return e; +for (b = 0, c = a.length; c > b; b++) if (w.call(a, b) && (d = Ha(a[b]))) { +if ("*" === d) { +e.length = 0, e.push("*"); +break; +} +-1 === e.indexOf(d) && e.push(d); +} +return e; +}; +return function(b, c) { +var d = Ha(c.swfPath); +null === d && (d = b); +var e = a(c.trustedDomains), f = e.length; +if (f > 0) { +if (1 === f && "*" === e[0]) return "always"; +if (-1 !== e.indexOf(b)) return 1 === f && b === d ? "sameDomain" :"always"; +} +return "never"; +}; +}(), Ja = function() { +try { +return g.activeElement; +} catch (a) { +return null; +} +}, Ka = function(a, b) { +var c, d, e, f = []; +if ("string" == typeof b && b && (f = b.split(/\s+/)), a && 1 === a.nodeType && f.length > 0) if (a.classList) for (c = 0, d = f.length; d > c; c++) a.classList.add(f[c]); else if (a.hasOwnProperty("className")) { +for (e = " " + a.className + " ", c = 0, d = f.length; d > c; c++) -1 === e.indexOf(" " + f[c] + " ") && (e += f[c] + " "); +a.className = e.replace(/^\s+|\s+$/g, ""); +} +return a; +}, La = function(a, b) { +var c, d, e, f = []; +if ("string" == typeof b && b && (f = b.split(/\s+/)), a && 1 === a.nodeType && f.length > 0) if (a.classList && a.classList.length > 0) for (c = 0, d = f.length; d > c; c++) a.classList.remove(f[c]); else if (a.className) { +for (e = (" " + a.className + " ").replace(/[\r\n\t]/g, " "), c = 0, d = f.length; d > c; c++) e = e.replace(" " + f[c] + " ", " "); +a.className = e.replace(/^\s+|\s+$/g, ""); +} +return a; +}, Ma = function(a, b) { +var c = m(a, null).getPropertyValue(b); +return "cursor" !== b || c && "auto" !== c || "A" !== a.nodeName ? c :"pointer"; +}, Na = function(a) { +var b = { +left:0, +top:0, +width:0, +height:0 +}; +if (a.getBoundingClientRect) { +var c = a.getBoundingClientRect(), d = f.pageXOffset, e = f.pageYOffset, h = g.documentElement.clientLeft || 0, i = g.documentElement.clientTop || 0, j = 0, k = 0; +if ("relative" === Ma(g.body, "position")) { +var l = g.body.getBoundingClientRect(), m = g.documentElement.getBoundingClientRect(); +j = l.left - m.left || 0, k = l.top - m.top || 0; +} +b.left = c.left + d - h - j, b.top = c.top + e - i - k, b.width = "width" in c ? c.width :c.right - c.left, b.height = "height" in c ? c.height :c.bottom - c.top; +} +return b; +}, Oa = function(a) { +if (!a) return !1; +var b = m(a, null), c = r(b.height) > 0, d = r(b.width) > 0, e = r(b.top) >= 0, f = r(b.left) >= 0, g = c && d && e && f, h = g ? null :Na(a), i = "none" !== b.display && "collapse" !== b.visibility && (g || !!h && (c || h.height > 0) && (d || h.width > 0) && (e || h.top >= 0) && (f || h.left >= 0)); +return i; +}, Pa = function() { +j(S), S = 0, l(T), T = 0; +}, Qa = function() { +var a; +if (d && (a = Aa(N.bridge))) { +var b = Na(d); +A(a.style, { +width:b.width + "px", +height:b.height + "px", +top:b.top + "px", +left:b.left + "px", +zIndex:"" + Sa(Z.zIndex) +}); +} +}, Ra = function(a) { +N.ready === !0 && (N.bridge && "function" == typeof N.bridge.setHandCursor ? N.bridge.setHandCursor(a) :N.ready = !1); +}, Sa = function(a) { +if (/^(?:auto|inherit)$/.test(a)) return a; +var b; +return "number" != typeof a || s(a) ? "string" == typeof a && (b = Sa(q(a, 10))) :b = a, "number" == typeof b ? b :"auto"; +}, Ta = function(b) { +var c, d, e, f = N.sandboxed, g = null; +if (b = b === !0, M === !1) g = !1; else { +try { +d = a.frameElement || null; +} catch (h) { +e = { +name:h.name, +message:h.message +}; +} +if (d && 1 === d.nodeType && "IFRAME" === d.nodeName) try { +g = d.hasAttribute("sandbox"); +} catch (h) { +g = null; +} else { +try { +c = document.domain || null; +} catch (h) { +c = null; +} +(null === c || e && "SecurityError" === e.name && /(^|[\s\(\[@])sandbox(es|ed|ing|[\s\.,!\)\]@]|$)/.test(e.message.toLowerCase())) && (g = !0); +} +} +return N.sandboxed = g, f === g || b || Ua(o), g; +}, Ua = function(a) { +function b(a) { +var b = a.match(/[\d]+/g); +return b.length = 3, b.join("."); +} +function c(a) { +return !!a && (a = a.toLowerCase()) && (/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(a) || "chrome.plugin" === a.slice(-13)); +} +function d(a) { +a && (i = !0, a.version && (l = b(a.version)), !l && a.description && (l = b(a.description)), a.filename && (k = c(a.filename))); +} +var e, f, g, i = !1, j = !1, k = !1, l = ""; +if (h.plugins && h.plugins.length) e = h.plugins["Shockwave Flash"], d(e), h.plugins["Shockwave Flash 2.0"] && (i = !0, l = "2.0.0.11"); else if (h.mimeTypes && h.mimeTypes.length) g = h.mimeTypes["application/x-shockwave-flash"], e = g && g.enabledPlugin, d(e); else if ("undefined" != typeof a) { +j = !0; +try { +f = new a("ShockwaveFlash.ShockwaveFlash.7"), i = !0, l = b(f.GetVariable("$version")); +} catch (m) { +try { +f = new a("ShockwaveFlash.ShockwaveFlash.6"), i = !0, l = "6.0.21"; +} catch (n) { +try { +f = new a("ShockwaveFlash.ShockwaveFlash"), i = !0, l = b(f.GetVariable("$version")); +} catch (o) { +j = !1; +} +} +} +} +N.disabled = i !== !0, N.outdated = l && r(l) < r(O), N.version = l || "0.0.0", N.pluginType = k ? "pepper" :j ? "activex" :i ? "netscape" :"unknown"; +}; +Ua(o), Ta(!0); +var Va = function() { +return this instanceof Va ? void ("function" == typeof Va._createClient && Va._createClient.apply(this, z(arguments))) :new Va(); +}; +v(Va, "version", { +value:"2.2.0", +writable:!1, +configurable:!0, +enumerable:!0 +}), Va.config = function() { +return $.apply(this, z(arguments)); +}, Va.state = function() { +return _.apply(this, z(arguments)); +}, Va.isFlashUnusable = function() { +return aa.apply(this, z(arguments)); +}, Va.on = function() { +return ba.apply(this, z(arguments)); +}, Va.off = function() { +return ca.apply(this, z(arguments)); +}, Va.handlers = function() { +return da.apply(this, z(arguments)); +}, Va.emit = function() { +return ea.apply(this, z(arguments)); +}, Va.create = function() { +return fa.apply(this, z(arguments)); +}, Va.destroy = function() { +return ga.apply(this, z(arguments)); +}, Va.setData = function() { +return ha.apply(this, z(arguments)); +}, Va.clearData = function() { +return ia.apply(this, z(arguments)); +}, Va.getData = function() { +return ja.apply(this, z(arguments)); +}, Va.focus = Va.activate = function() { +return ka.apply(this, z(arguments)); +}, Va.blur = Va.deactivate = function() { +return la.apply(this, z(arguments)); +}, Va.activeElement = function() { +return ma.apply(this, z(arguments)); +}; +var Wa = 0, Xa = {}, Ya = 0, Za = {}, $a = {}; +A(Z, { +autoActivate:!0 +}); +var _a = function(a) { +var b = this; +b.id = "" + Wa++, Xa[b.id] = { +instance:b, +elements:[], +handlers:{} +}, a && b.clip(a), Va.on("*", function(a) { +return b.emit(a); +}), Va.on("destroy", function() { +b.destroy(); +}), Va.create(); +}, ab = function(a, d) { +var e, f, g, h = {}, i = Xa[this.id], j = i && i.handlers; +if (!i) throw new Error("Attempted to add new listener(s) to a destroyed ZeroClipboard client instance"); +if ("string" == typeof a && a) g = a.toLowerCase().split(/\s+/); else if ("object" == typeof a && a && "undefined" == typeof d) for (e in a) w.call(a, e) && "string" == typeof e && e && "function" == typeof a[e] && this.on(e, a[e]); +if (g && g.length) { +for (e = 0, f = g.length; f > e; e++) a = g[e].replace(/^on/, ""), h[a] = !0, j[a] || (j[a] = []), j[a].push(d); +if (h.ready && N.ready && this.emit({ +type:"ready", +client:this +}), h.error) { +for (e = 0, f = W.length; f > e; e++) if (N[W[e].replace(/^flash-/, "")]) { +this.emit({ +type:"error", +name:W[e], +client:this +}); +break; +} +c !== b && Va.version !== c && this.emit({ +type:"error", +name:"version-mismatch", +jsVersion:Va.version, +swfVersion:c +}); +} +} +return this; +}, bb = function(a, b) { +var c, d, e, f, g, h = Xa[this.id], i = h && h.handlers; +if (!i) return this; +if (0 === arguments.length) f = u(i); else if ("string" == typeof a && a) f = a.split(/\s+/); else if ("object" == typeof a && a && "undefined" == typeof b) for (c in a) w.call(a, c) && "string" == typeof c && c && "function" == typeof a[c] && this.off(c, a[c]); +if (f && f.length) for (c = 0, d = f.length; d > c; c++) if (a = f[c].toLowerCase().replace(/^on/, ""), g = i[a], g && g.length) if (b) for (e = g.indexOf(b); -1 !== e; ) g.splice(e, 1), e = g.indexOf(b, e); else g.length = 0; +return this; +}, cb = function(a) { +var b = null, c = Xa[this.id] && Xa[this.id].handlers; +return c && (b = "string" == typeof a && a ? c[a] ? c[a].slice(0) :[] :B(c)), b; +}, db = function(a) { +if (ib.call(this, a)) { +"object" == typeof a && a && "string" == typeof a.type && a.type && (a = A({}, a)); +var b = A({}, oa(a), { +client:this +}); +jb.call(this, b); +} +return this; +}, eb = function(a) { +if (!Xa[this.id]) throw new Error("Attempted to clip element(s) to a destroyed ZeroClipboard client instance"); +a = kb(a); +for (var b = 0; b < a.length; b++) if (w.call(a, b) && a[b] && 1 === a[b].nodeType) { +a[b].zcClippingId ? -1 === Za[a[b].zcClippingId].indexOf(this.id) && Za[a[b].zcClippingId].push(this.id) :(a[b].zcClippingId = "zcClippingId_" + Ya++, Za[a[b].zcClippingId] = [ this.id ], Z.autoActivate === !0 && lb(a[b])); +var c = Xa[this.id] && Xa[this.id].elements; +-1 === c.indexOf(a[b]) && c.push(a[b]); +} +return this; +}, fb = function(a) { +var b = Xa[this.id]; +if (!b) return this; +var c, d = b.elements; +a = "undefined" == typeof a ? d.slice(0) :kb(a); +for (var e = a.length; e--; ) if (w.call(a, e) && a[e] && 1 === a[e].nodeType) { +for (c = 0; -1 !== (c = d.indexOf(a[e], c)); ) d.splice(c, 1); +var f = Za[a[e].zcClippingId]; +if (f) { +for (c = 0; -1 !== (c = f.indexOf(this.id, c)); ) f.splice(c, 1); +0 === f.length && (Z.autoActivate === !0 && mb(a[e]), delete a[e].zcClippingId); +} +} +return this; +}, gb = function() { +var a = Xa[this.id]; +return a && a.elements ? a.elements.slice(0) :[]; +}, hb = function() { +Xa[this.id] && (this.unclip(), this.off(), delete Xa[this.id]); +}, ib = function(a) { +if (!a || !a.type) return !1; +if (a.client && a.client !== this) return !1; +var b = Xa[this.id], c = b && b.elements, d = !!c && c.length > 0, e = !a.target || d && -1 !== c.indexOf(a.target), f = a.relatedTarget && d && -1 !== c.indexOf(a.relatedTarget), g = a.client && a.client === this; +return b && (e || f || g) ? !0 :!1; +}, jb = function(a) { +var b = Xa[this.id]; +if ("object" == typeof a && a && a.type && b) { +var c = ra(a), d = b && b.handlers["*"] || [], e = b && b.handlers[a.type] || [], g = d.concat(e); +if (g && g.length) { +var h, i, j, k, l, m = this; +for (h = 0, i = g.length; i > h; h++) j = g[h], k = m, "string" == typeof j && "function" == typeof f[j] && (j = f[j]), "object" == typeof j && j && "function" == typeof j.handleEvent && (k = j, j = j.handleEvent), "function" == typeof j && (l = A({}, a), sa(j, k, [ l ], c)); +} +} +}, kb = function(a) { +return "string" == typeof a && (a = []), "number" != typeof a.length ? [ a ] :a; +}, lb = function(a) { +if (a && 1 === a.nodeType) { +var b = function(a) { +(a || (a = f.event)) && ("js" !== a._source && (a.stopImmediatePropagation(), a.preventDefault()), delete a._source); +}, c = function(c) { +(c || (c = f.event)) && (b(c), Va.focus(a)); +}; +a.addEventListener("mouseover", c, !1), a.addEventListener("mouseout", b, !1), a.addEventListener("mouseenter", b, !1), a.addEventListener("mouseleave", b, !1), a.addEventListener("mousemove", b, !1), $a[a.zcClippingId] = { +mouseover:c, +mouseout:b, +mouseenter:b, +mouseleave:b, +mousemove:b +}; +} +}, mb = function(a) { +if (a && 1 === a.nodeType) { +var b = $a[a.zcClippingId]; +if ("object" == typeof b && b) { +for (var c, d, e = [ "move", "leave", "enter", "out", "over" ], f = 0, g = e.length; g > f; f++) c = "mouse" + e[f], d = b[c], "function" == typeof d && a.removeEventListener(c, d, !1); +delete $a[a.zcClippingId]; +} +} +}; +Va._createClient = function() { +_a.apply(this, z(arguments)); +}, Va.prototype.on = function() { +return ab.apply(this, z(arguments)); +}, Va.prototype.off = function() { +return bb.apply(this, z(arguments)); +}, Va.prototype.handlers = function() { +return cb.apply(this, z(arguments)); +}, Va.prototype.emit = function() { +return db.apply(this, z(arguments)); +}, Va.prototype.clip = function() { +return eb.apply(this, z(arguments)); +}, Va.prototype.unclip = function() { +return fb.apply(this, z(arguments)); +}, Va.prototype.elements = function() { +return gb.apply(this, z(arguments)); +}, Va.prototype.destroy = function() { +return hb.apply(this, z(arguments)); +}, Va.prototype.setText = function(a) { +if (!Xa[this.id]) throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance"); +return Va.setData("text/plain", a), this; +}, Va.prototype.setHtml = function(a) { +if (!Xa[this.id]) throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance"); +return Va.setData("text/html", a), this; +}, Va.prototype.setRichText = function(a) { +if (!Xa[this.id]) throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance"); +return Va.setData("application/rtf", a), this; +}, Va.prototype.setData = function() { +if (!Xa[this.id]) throw new Error("Attempted to set pending clipboard data from a destroyed ZeroClipboard client instance"); +return Va.setData.apply(this, z(arguments)), this; +}, Va.prototype.clearData = function() { +if (!Xa[this.id]) throw new Error("Attempted to clear pending clipboard data from a destroyed ZeroClipboard client instance"); +return Va.clearData.apply(this, z(arguments)), this; +}, Va.prototype.getData = function() { +if (!Xa[this.id]) throw new Error("Attempted to get pending clipboard data from a destroyed ZeroClipboard client instance"); +return Va.getData.apply(this, z(arguments)); +}, "function" == typeof define && define.amd ? define(function() { +return Va; +}) :"object" == typeof module && module && "object" == typeof module.exports && module.exports ? module.exports = Va :a.ZeroClipboard = Va; +}(function() { +return this || window; +}());`) func scripts_vendor_js() ([]byte, error) { return _scripts_vendor_js, nil @@ -57698,7 +58610,8 @@ body,html{height:100%} .gutter-top{padding-top:15px} .gutter-bottom{padding-bottom:15px} select:invalid{box-shadow:none} -.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}`) +.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} +.well h1:first-child,.well h2:first-child,.well h3:first-child,.well h4:first-child,.well h5:first-child{margin-top:0}`) func styles_main_css() ([]byte, error) { return _styles_main_css, nil @@ -58084,7 +58997,8 @@ var _views_builds_html = []byte(`
+
+

{{buildConfigName}}

Build strategy: {{buildConfig.parameters.strategy.type}}
@@ -58119,12 +59033,20 @@ Triggers:
  • -GitHub webhook URL: +GitHub webhook URL +
    +{{buildConfigName | webhookURL : trigger.type : trigger.github.secret : project.metadata.name}} + +
    -Generic webhook URL: +Generic webhook URL +
    +{{buildConfigName | webhookURL : trigger.type : trigger.generic.secret : project.metadata.name}} + +
    Image change on image repository {{trigger.imageChange.from.name}}:{{trigger.imageChange.tag}} @@ -58135,7 +59057,8 @@ Image change on image repository {{trigger.imageChange.from.name}}:{{trigger.ima
  • Manual: osc start-build {{buildConfigName}} -n {{project.metadata.name}}
  • -
    +
    +

    {{build.metadata.name}}

    Created:
    @@ -58150,15 +59073,15 @@ Image change on image repository {{trigger.imageChange.from.name}}:{{trigger.ima
    Build strategy: {{build.parameters.strategy.type}}
    -
    +
    Builder image: {{build.parameters.strategy.stiStrategy.image}}
    -
    +
    Builder image: {{build.parameters.strategy.dockerStrategy.image}}
    -
    +
    Builder image: {{build.parameters.strategy.customStrategy.image}}
    @@ -58185,7 +59108,7 @@ Output image: {{build.parameters.output.dockerImageReference}}
    -
    +

    {{buildConfigName}} @@ -58193,7 +59116,7 @@ Output image: {{build.parameters.output.dockerImageReference}}

    -
    +

    {{build.metadata.name}}

    Created:
    @@ -58352,6 +59275,19 @@ func views_deployments_html() ([]byte, error) { return _views_deployments_html, nil } +var _views_directives_click_to_reveal_html = []byte(`{{linkText || "Show..."}} +`) + +func views_directives_click_to_reveal_html() ([]byte, error) { + return _views_directives_click_to_reveal_html, nil +} + +var _views_directives_copy_to_clipboard_html = []byte(``) + +func views_directives_copy_to_clipboard_html() ([]byte, error) { + return _views_directives_copy_to_clipboard_html, nil +} + var _views_images_html = []byte(`
    @@ -58867,6 +59803,7 @@ var _bindata = map[string]func() ([]byte, error){ "images/touch-icon-precomposed.png": images_touch_icon_precomposed_png, "index.html": index_html, "robots.txt": robots_txt, + "scripts/ZeroClipboard.swf": scripts_zeroclipboard_swf, "scripts/oldieshim.js": scripts_oldieshim_js, "scripts/scripts.js": scripts_scripts_js, "scripts/vendor.js": scripts_vendor_js, @@ -58947,6 +59884,8 @@ var _bindata = map[string]func() ([]byte, error){ "views/catalog/_template.html": views_catalog_template_html, "views/catalog.html": views_catalog_html, "views/deployments.html": views_deployments_html, + "views/directives/_click-to-reveal.html": views_directives_click_to_reveal_html, + "views/directives/_copy-to-clipboard.html": views_directives_copy_to_clipboard_html, "views/images.html": views_images_html, "views/newfromtemplate.html": views_newfromtemplate_html, "views/pods.html": views_pods_html2, @@ -59029,6 +59968,8 @@ var _bintree = &_bintree_t{nil, map[string]*_bintree_t{ "robots.txt": &_bintree_t{robots_txt, map[string]*_bintree_t{ }}, "scripts": &_bintree_t{nil, map[string]*_bintree_t{ + "ZeroClipboard.swf": &_bintree_t{scripts_zeroclipboard_swf, map[string]*_bintree_t{ + }}, "oldieshim.js": &_bintree_t{scripts_oldieshim_js, map[string]*_bintree_t{ }}, "scripts.js": &_bintree_t{scripts_scripts_js, map[string]*_bintree_t{ @@ -59197,6 +60138,12 @@ var _bintree = &_bintree_t{nil, map[string]*_bintree_t{ }}, "deployments.html": &_bintree_t{views_deployments_html, map[string]*_bintree_t{ }}, + "directives": &_bintree_t{nil, map[string]*_bintree_t{ + "_click-to-reveal.html": &_bintree_t{views_directives_click_to_reveal_html, map[string]*_bintree_t{ + }}, + "_copy-to-clipboard.html": &_bintree_t{views_directives_copy_to_clipboard_html, map[string]*_bintree_t{ + }}, + }}, "images.html": &_bintree_t{views_images_html, map[string]*_bintree_t{ }}, "newfromtemplate.html": &_bintree_t{views_newfromtemplate_html, map[string]*_bintree_t{ diff --git a/pkg/assets/mime.go b/pkg/assets/mime.go index 15e2bdc4ee5e..68ea6f6ef93b 100644 --- a/pkg/assets/mime.go +++ b/pkg/assets/mime.go @@ -27,6 +27,9 @@ func RegisterMimeTypes() { // http://www.iana.org/assignments/media-types/application/font-sfnt registerIfNeeded(".ttf", "application/font-sfnt") registerIfNeeded(".otf", "application/font-sfnt") + + // Flash + registerIfNeeded(".swf", "application/x-shockwave-flash") } func registerIfNeeded(extension, mimeType string) {