redmine_apijs 6.9.5 → 6.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README +20 -15
- data/app/controllers/apijs_controller.rb +1 -1
- data/app/views/application/_browser.html.erb +1 -1
- data/app/views/attachments/_links.html.erb +1 -1
- data/app/views/settings/_apijs.html.erb +36 -18
- data/assets/javascripts/apijs-redmine.js +3 -3
- data/assets/javascripts/apijs-redmine.min.js +2 -2
- data/assets/javascripts/apijs-redmine.min.js.map +1 -1
- data/assets/javascripts/apijs.min.js +3 -3
- data/assets/javascripts/apijs.min.js.map +1 -1
- data/assets/stylesheets/apijs-print.min.css +2 -2
- data/assets/stylesheets/apijs-print.min.css.map +1 -1
- data/assets/stylesheets/apijs-redmine-rtl.min.css +2 -2
- data/assets/stylesheets/apijs-redmine-rtl.min.css.map +1 -1
- data/assets/stylesheets/apijs-redmine.css +8 -10
- data/assets/stylesheets/apijs-redmine.min.css +2 -2
- data/assets/stylesheets/apijs-redmine.min.css.map +1 -1
- data/assets/stylesheets/apijs-screen-rtl.min.css +3 -3
- data/assets/stylesheets/apijs-screen-rtl.min.css.map +1 -1
- data/assets/stylesheets/apijs-screen.min.css +3 -3
- data/assets/stylesheets/apijs-screen.min.css.map +1 -1
- data/config/locales/cs.yml +0 -2
- data/config/locales/de.yml +0 -2
- data/config/locales/el.yml +0 -2
- data/config/locales/en.yml +0 -2
- data/config/locales/es.yml +0 -2
- data/config/locales/fr.yml +0 -2
- data/config/locales/hu.yml +0 -2
- data/config/locales/it.yml +0 -2
- data/config/locales/ja.yml +0 -2
- data/config/locales/nl.yml +0 -2
- data/config/locales/pl.yml +0 -2
- data/config/locales/pt-BR.yml +0 -2
- data/config/locales/pt.yml +0 -2
- data/config/locales/ro.yml +0 -2
- data/config/locales/ru.yml +0 -2
- data/config/locales/sk.yml +0 -2
- data/config/locales/tr.yml +1 -3
- data/config/locales/uk.yml +0 -2
- data/config/locales/zh.yml +0 -2
- data/config/routes.rb +1 -1
- data/init.rb +3 -3
- data/lib/apijs_attachment.rb +5 -3
- data/lib/apijs_files.rb +1 -1
- data/lib/image.py +106 -97
- data/lib/redmine_apijs.rb +1 -1
- data/lib/useragentparser.rb +17 -11
- data/redmine_apijs.gemspec +1 -1
- metadata +3 -6
data/lib/useragentparser.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
#
|
3
|
-
# Copyright 2013-
|
3
|
+
# Copyright 2013-2024 | Jesse G. Donat <donatj~gmail~com>
|
4
4
|
# https://github.com/donatj/PhpUserAgent
|
5
5
|
#
|
6
|
-
# Copyright 2019-
|
7
|
-
# https://gist.github.com/luigifab/19a68d9aa98fa80f2961809d7cec59c0 (1.
|
6
|
+
# Copyright 2019-2025 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
7
|
+
# https://gist.github.com/luigifab/19a68d9aa98fa80f2961809d7cec59c0 (1.10.0-fork1)
|
8
8
|
#
|
9
9
|
# Parses a user agent string into its important parts
|
10
10
|
# Licensed under the MIT License
|
@@ -20,13 +20,13 @@ class Useragentparser
|
|
20
20
|
browser = nil
|
21
21
|
version = nil
|
22
22
|
empty = {'platform' => platform, 'browser' => browser, 'version' => version}
|
23
|
-
priority = ['Xbox One', 'Xbox', 'Windows Phone', 'Tizen', 'Android', 'FreeBSD', 'NetBSD', 'OpenBSD', 'CrOS', 'X11', 'Sailfish']
|
23
|
+
priority = ['Xbox One', 'Xbox', 'Windows Phone', 'Tizen', 'Android', 'FreeBSD', 'NetBSD', 'OpenBSD', 'CrOS', 'Fuchsia', 'X11', 'Sailfish']
|
24
24
|
|
25
25
|
return empty unless userAgent
|
26
26
|
|
27
27
|
if (parentMatches = userAgent.match(/\((.*?)\)/m))
|
28
28
|
result = parentMatches[1].scan(
|
29
|
-
/(?<platform>BB\d+;|Android|Adr|Symbian|Sailfish|CrOS|Tizen|iPhone|iPad|iPod|Linux|(?:Open|Net|Free)BSD|Macintosh|Windows(?:\ Phone)?|Silk|linux-gnu|BlackBerry|PlayBook|X11|(?:New\ )?Nintendo\ (?:WiiU?|3?DS|Switch)|Xbox(?:\ One)?) (?:\ [^;]*)? (?:;|$)/imx
|
29
|
+
/(?<platform>BB\d+;|Android|Adr|Symbian|Sailfish|CrOS|Fuchsia|Tizen|iPhone|iPad|iPod|Linux|(?:Open|Net|Free)BSD|Macintosh|Windows(?:\ Phone)?|Silk|linux-gnu|BlackBerry|PlayBook|X11|(?:New\ )?Nintendo\ (?:WiiU?|3?DS|Switch)|Xbox(?:\ One)?) (?:\ [^;]*)? (?:;|$)/imx
|
30
30
|
).map(&:join)
|
31
31
|
result.uniq!
|
32
32
|
if result.length > 1
|
@@ -57,13 +57,13 @@ class Useragentparser
|
|
57
57
|
end
|
58
58
|
|
59
59
|
result = userAgent.to_enum(:scan, # ["browser" => ["Firefox"...], "version" => ["45.0"...]]
|
60
|
-
/(?<browser>Camino|Kindle(\ Fire)?|Firefox|Iceweasel|IceCat|Safari|MSIE|Trident|AppleWebKit|TizenBrowser|(?:Headless)?Chrome|YaBrowser|Vivaldi|IEMobile|Opera|OPR|Silk|Midori|(?-i:Edge)|EdgA?|CriOS|UCBrowser|Puffin|OculusBrowser|SamsungBrowser|SailfishBrowser|XiaoMi\/MiuiBrowser|Baiduspider|Applebot|Facebot|Googlebot|YandexBot|bingbot|Lynx|Version|Wget|curl|Valve\ Steam\ Tenfoot|NintendoBrowser|PLAYSTATION\ (?:\d|Vita)+)\)?;?(?:[
|
60
|
+
/(?<browser>Camino|Kindle(\ Fire)?|Firefox|Thunderbird|Iceweasel|IceCat|Safari|MSIE|Trident|AppleWebKit|TizenBrowser|(?:Headless)?Chrome|YaBrowser|Vivaldi|IEMobile|Opera|OPR|Silk|Midori|(?-i:Edge)|EdgA?|CriOS|UCBrowser|Puffin|OculusBrowser|SamsungBrowser|SailfishBrowser|XiaoMi\/MiuiBrowser|YaApp_Android|Whale|Baiduspider|Applebot|Facebot|Googlebot|YandexBot|bingbot|Lynx|Version|Wget|curl|ChatGPT-User|GPTBot|OAI-SearchBot|Valve\ Steam\ Tenfoot|Mastodon|NintendoBrowser|PLAYSTATION\ (?:\d|Vita)+)\)?;?(?:[\/ :](?<version>[\dA-Z.]+)|\/[A-Z]*)/ix
|
61
61
|
).map { Regexp.last_match.names.collect{ |x| {x => $~[x]} }.reduce({}, :merge) }
|
62
62
|
.reduce({}) { |h,pairs| pairs.each {|k,v| (h[k] ||= []) << v}; h }
|
63
63
|
|
64
64
|
# If nothing matched, return nil (to avoid undefined index errors)
|
65
65
|
if !result['browser'] || !result['browser'][0] || !result['version'] || !result['version'][0]
|
66
|
-
result = userAgent.match(/^(?!Mozilla)(?<browser>[A-Z\d\-]+)(\/(?<version>[\dA-Z.]+))?/ix)
|
66
|
+
result = userAgent.match(/^(?!Mozilla)(?<browser>[A-Z\d\-]+)([\/ :](?<version>[\dA-Z.]+))?/ix)
|
67
67
|
if result
|
68
68
|
return {
|
69
69
|
'platform' => platform ? platform : nil,
|
@@ -88,7 +88,7 @@ class Useragentparser
|
|
88
88
|
refpla = [platform]
|
89
89
|
refval = ['']
|
90
90
|
|
91
|
-
if findt(lowerBrowser, {'OPR' => 'Opera', 'Facebot' => 'iMessageBot', 'UCBrowser' => 'UC Browser', 'YaBrowser' => 'Yandex', 'Iceweasel' => 'Firefox', 'Icecat' => 'Firefox', 'CriOS' => 'Chrome', 'Edg' => 'Edge', 'EdgA' => 'Edge', 'XiaoMi/MiuiBrowser' => 'MiuiBrowser'}, refkey, refbro)
|
91
|
+
if findt(lowerBrowser, {'OPR' => 'Opera', 'Facebot' => 'iMessageBot', 'UCBrowser' => 'UC Browser', 'YaBrowser' => 'Yandex', 'YaApp_Android' => 'Yandex', 'Iceweasel' => 'Firefox', 'Icecat' => 'Firefox', 'CriOS' => 'Chrome', 'Edg' => 'Edge', 'EdgA' => 'Edge', 'XiaoMi/MiuiBrowser' => 'MiuiBrowser'}, refkey, refbro)
|
92
92
|
browser = refbro[0]
|
93
93
|
version = result['version'][refkey[0]][0] =~ /\d/ ? result['version'][refkey[0]] : nil
|
94
94
|
elsif find(lowerBrowser, 'Playstation Vita', refkey, platform)
|
@@ -124,7 +124,7 @@ class Useragentparser
|
|
124
124
|
end
|
125
125
|
end
|
126
126
|
end
|
127
|
-
elsif find(lowerBrowser, ['Applebot', 'IEMobile', 'Edge', 'Midori', 'Vivaldi', 'OculusBrowser', 'SamsungBrowser', 'Valve Steam Tenfoot', 'Chrome', 'HeadlessChrome', 'SailfishBrowser'], refkey, refbro)
|
127
|
+
elsif find(lowerBrowser, ['Googlebot', 'Applebot', 'IEMobile', 'Edge', 'Midori', 'Whale', 'Vivaldi', 'OculusBrowser', 'SamsungBrowser', 'Valve Steam Tenfoot', 'Chrome', 'HeadlessChrome', 'SailfishBrowser'], refkey, refbro)
|
128
128
|
version = result['version'][refkey[0]]
|
129
129
|
browser = refbro[0]
|
130
130
|
elsif rv_result && find(lowerBrowser, 'Trident')
|
@@ -140,9 +140,15 @@ class Useragentparser
|
|
140
140
|
browser = 'BlackBerry Browser'
|
141
141
|
elsif find(lowerBrowser, 'Safari', refkey, refbro) || find(lowerBrowser, 'TizenBrowser', refkey, refbro)
|
142
142
|
browser = refbro[0]
|
143
|
+
version = result['version'][refkey[0]]
|
144
|
+
elsif result['browser'].length > 0
|
145
|
+
key = result['browser'].length - 1;
|
146
|
+
browser = result['browser'][key];
|
147
|
+
version = result['version'][key];
|
148
|
+
end
|
149
|
+
if find(lowerBrowser, 'Version', refkey)
|
150
|
+
version = result['version'][refkey[0]]
|
143
151
|
end
|
144
|
-
find(lowerBrowser, 'Version', refkey)
|
145
|
-
version = result['version'][refkey[0]]
|
146
152
|
else
|
147
153
|
pKey = result['browser'].grep(/playstation \d/i)
|
148
154
|
if pKey.length > 0
|
data/redmine_apijs.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'redmine_apijs'
|
4
|
-
s.version = '6.9.
|
4
|
+
s.version = '6.9.7'
|
5
5
|
s.summary = 'Redmine Apijs plugin'
|
6
6
|
s.description = 'Integrate the apijs JavaScript library into Redmine. Provides a gallery for image and video attachments. Gem for Redmine 3.0+ (tested with 3.0..5.0), for Redmine 4.1+ read https://redmine.org/issues/31110#note-8'
|
7
7
|
s.homepage = 'https://github.com/luigifab/redmine-apijs'
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine_apijs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.9.
|
4
|
+
version: 6.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabrice Creuzot
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-04 00:00:00.000000000 Z
|
12
11
|
dependencies: []
|
13
12
|
description: Integrate the apijs JavaScript library into Redmine. Provides a gallery
|
14
13
|
for image and video attachments. Gem for Redmine 3.0+ (tested with 3.0..5.0), for
|
@@ -83,7 +82,6 @@ metadata:
|
|
83
82
|
bug_tracker_uri: https://github.com/luigifab/redmine-apijs/issues
|
84
83
|
documentation_uri: https://www.luigifab.fr/redmine/apijs
|
85
84
|
homepage_uri: https://www.redmine.org/plugins/apijs
|
86
|
-
post_install_message:
|
87
85
|
rdoc_options: []
|
88
86
|
require_paths:
|
89
87
|
- lib
|
@@ -98,8 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
96
|
- !ruby/object:Gem::Version
|
99
97
|
version: '0'
|
100
98
|
requirements: []
|
101
|
-
rubygems_version: 3.
|
102
|
-
signing_key:
|
99
|
+
rubygems_version: 3.6.6
|
103
100
|
specification_version: 4
|
104
101
|
summary: Redmine Apijs plugin
|
105
102
|
test_files: []
|