Radar links should be clickable on bugs.webkit.org
authorjer.noble@apple.com <jer.noble@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 6 Oct 2018 00:02:48 +0000 (00:02 +0000)
committerjer.noble@apple.com <jer.noble@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 6 Oct 2018 00:02:48 +0000 (00:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=190293
<rdar://problem/45020184>

Reviewed by Lucas Forschler.

Add a new Extension which formats bug comments and makes radar:// links clickable.

* extensions/Radar/Config.pm: Added.
* extensions/Radar/Extension.pm: Added.
(bug_format_comment):
(_replace_radar):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236890 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/bugs.webkit.org/ChangeLog
Websites/bugs.webkit.org/extensions/Radar/Config.pm [new file with mode: 0644]
Websites/bugs.webkit.org/extensions/Radar/Extension.pm [new file with mode: 0644]

index c4b4088..f629618 100644 (file)
@@ -1,3 +1,18 @@
+2018-10-05  Jer Noble  <jer.noble@apple.com>
+
+        Radar links should be clickable on bugs.webkit.org
+        https://bugs.webkit.org/show_bug.cgi?id=190293
+        <rdar://problem/45020184>
+
+        Reviewed by Lucas Forschler.
+
+        Add a new Extension which formats bug comments and makes radar:// links clickable.
+
+        * extensions/Radar/Config.pm: Added.
+        * extensions/Radar/Extension.pm: Added.
+        (bug_format_comment):
+        (_replace_radar):
+
 2018-08-23  Ross Kirsling  <ross.kirsling@sony.com>
 
         EWS bubbles are being hidden due to lack of space.
diff --git a/Websites/bugs.webkit.org/extensions/Radar/Config.pm b/Websites/bugs.webkit.org/extensions/Radar/Config.pm
new file mode 100644 (file)
index 0000000..3c1b0a6
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright (C) 2018 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package Bugzilla::Extension::Radar;
+
+use strict;
+use warnings;
+
+use constant NAME => "Radar";
+use constant REQUIRED_MODULES => [];
+use constant OPTIONAL_MODULES => [];
+
+__PACKAGE__->NAME;
diff --git a/Websites/bugs.webkit.org/extensions/Radar/Extension.pm b/Websites/bugs.webkit.org/extensions/Radar/Extension.pm
new file mode 100644 (file)
index 0000000..934723a
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright (C) 2018 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package Bugzilla::Extension::Radar;
+
+use strict;
+use warnings;
+
+use parent qw(Bugzilla::Extension);
+
+use Bugzilla::Constants;
+use Bugzilla::Group;
+use Bugzilla::User;
+
+our $VERSION = "1.0.0";
+
+sub bug_format_comment {
+    my ($self, $args) = @_;
+        my $regexes = $args->{'regexes'};
+
+    # See: <https://radar.apple.com/information/urls.html> for Radar URI documentation
+    push(@$regexes, { match => qr/\b(r[a]?dar:\/\/[[:word:]-.~&\/=%:,]*)([-.~&%=:,]?)\b/, replace => \&_replace_radar });
+}
+
+sub _replace_radar {
+    my $args = shift;
+    my $radarURI = $args->{matches}->[0];
+    my $optionalPunctuation = $args->{matches}->[1];
+    return qq{<a href="$radarURI">$radarURI</a>$optionalPunctuation};
+};
+
+# This must be the last line of your extension.
+__PACKAGE__->NAME;