Version 5.0.0 beta 1

This commit is contained in:
Neo committed 2025-12-19 16:27:35 -08:00
1 parent 25ddeb65d6
commit 15c7beabc5
6736 files changed
+627902 -497943

No files matched your search

+8 -208
View File
@@ -7,13 +7,6 @@
"image categories"
]
},
"app=gallery&module=gallery&controller=categories&do=form": {
"lang_key": "menu__gallery_gallery_categories",
"restriction": "categories_manage",
"keywords": [
"add category"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=category_allow_comments": {
"lang_key": "category_allow_comments",
"restriction": "categories_manage",
@@ -27,71 +20,18 @@
"restriction": "categories_manage",
"keywords": [
"comments approved",
"must approved"
"must approved",
"comments must"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=category_can_tag": {
"lang_key": "category_can_tag",
"restriction": "categories_manage",
"keywords": [
"allow tags",
"tags"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=category_sort_options": {
"lang_key": "category_sort_options",
"restriction": "categories_manage",
"keywords": [
"default sort",
"sort order"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=category_tag_prefixes": {
"lang_key": "category_tag_prefixes",
"restriction": "categories_manage",
"keywords": [
"allow prefixes",
"prefixes"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_category_allow_albums": {
"lang_key": "category_allow_albums",
"restriction": "categories_manage",
"keywords": [
"allow albums"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_category_allow_reviews": {
"lang_key": "category_allow_reviews",
"restriction": "categories_manage",
"keywords": [
"allow reviews",
"reviews"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_category_approve_img": {
"lang_key": "category_approve_img",
"restriction": "categories_manage",
"keywords": [
"images must",
"must approved"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_category_description": {
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_description": {
"lang_key": "category_description",
"restriction": "categories_manage",
"keywords": [
"category description"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_category_name": {
"lang_key": "category_name",
"restriction": "categories_manage",
"keywords": [
"category name"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_category_show_rules": {
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_show_rules": {
"lang_key": "category_show_rules",
"restriction": "categories_manage",
"keywords": [
@@ -100,7 +40,7 @@
"show rules"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_gcategory_allow_rating": {
"app=gallery&module=gallery&controller=categories&searchResult=form_new_gcategory_allow_rating": {
"lang_key": "gcategory_allow_rating",
"restriction": "categories_manage",
"keywords": [
@@ -108,13 +48,6 @@
"ratings"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_1_gcategory_parent_id": {
"lang_key": "gcategory_parent_id",
"restriction": "categories_manage",
"keywords": [
"parent category"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_allow_albums": {
"lang_key": "category_allow_albums",
"restriction": "categories_manage",
@@ -131,44 +64,6 @@
"reviews"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_approve_img": {
"lang_key": "category_approve_img",
"restriction": "categories_manage",
"keywords": [
"items approved",
"must approved"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_description": {
"lang_key": "category_description",
"restriction": "categories_manage",
"keywords": [
"category description"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_name": {
"lang_key": "category_name",
"restriction": "categories_manage",
"keywords": [
"category name"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_show_rules": {
"lang_key": "category_show_rules",
"restriction": "categories_manage",
"keywords": [
"rules",
"show rules"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_gcategory_allow_rating": {
"lang_key": "gcategory_allow_rating",
"restriction": "categories_manage",
"keywords": [
"allow ratings",
"ratings"
]
},
"app=gallery&module=gallery&controller=categories&searchResult=form_new_gcategory_parent_id": {
"lang_key": "gcategory_parent_id",
"restriction": "categories_manage",
@@ -185,31 +80,7 @@
"permission denied"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=category_allow_comments": {
"lang_key": "category_allow_comments",
"restriction": "categories_manage",
"keywords": [
"allow comments",
"comments"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=category_approve_com": {
"lang_key": "category_approve_com",
"restriction": "categories_manage",
"keywords": [
"comments must",
"must approved"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=category_can_tag": {
"lang_key": "category_can_tag",
"restriction": "categories_manage",
"keywords": [
"allow tags",
"tags"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=category_sort_options": {
"app=gallery&module=gallery&controller=categories&searchResult=category_sort_options": {
"lang_key": "category_sort_options",
"restriction": "categories_manage",
"keywords": [
@@ -217,30 +88,7 @@
"sort order"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=category_tag_prefixes": {
"lang_key": "category_tag_prefixes",
"restriction": "categories_manage",
"keywords": [
"allow prefixes",
"prefixes"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_category_allow_albums": {
"lang_key": "category_allow_albums",
"restriction": "categories_manage",
"keywords": [
"allow albums"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_category_allow_reviews": {
"lang_key": "category_allow_reviews",
"restriction": "categories_manage",
"keywords": [
"allow reviews",
"reviews"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_category_approve_img": {
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_approve_img": {
"lang_key": "category_approve_img",
"restriction": "categories_manage",
"keywords": [
@@ -249,52 +97,13 @@
"must approved"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_category_description": {
"lang_key": "category_description",
"restriction": "categories_manage",
"keywords": [
"category description"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_category_name": {
"app=gallery&module=gallery&controller=categories&searchResult=form_new_category_name": {
"lang_key": "category_name",
"restriction": "categories_manage",
"keywords": [
"category name"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_category_show_rules": {
"lang_key": "category_show_rules",
"restriction": "categories_manage",
"keywords": [
"rules",
"show rules"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_gcategory_allow_rating": {
"lang_key": "gcategory_allow_rating",
"restriction": "categories_manage",
"keywords": [
"allow ratings",
"ratings"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=form_new_gcategory_parent_id": {
"lang_key": "gcategory_parent_id",
"restriction": "categories_manage",
"keywords": [
"parent",
"parent category"
]
},
"app=gallery&module=gallery&controller=categories&subnode=0&parent=1&searchResult=gallery_permission_custom_error": {
"lang_key": "category_permission_custom_error",
"restriction": "categories_manage",
"keywords": [
"custom error",
"custom permission denied"
]
},
"app=gallery&module=gallery&controller=settings": {
"lang_key": "menu__gallery_gallery_settings",
"restriction": "settings_manage",
@@ -423,15 +232,6 @@
"upload movies"
]
},
"app=core&module=members&controller=members&searchResult=remove_gallery_upload": {
"lang_key": "remove_gallery_upload",
"restriction": null,
"keywords": [
"Can Upload",
"Gallery Upload",
"Images"
]
},
"app=core&module=members&controller=groups&searchResult=4_g_create_albums": {
"lang_key": "g_create_albums",
"restriction": "groups_manage",
+7 -32
View File
@@ -31,43 +31,18 @@
<widget key="recentImageReviews"><![CDATA[{"class":"\\IPS\\Widget\\PermissionCache","restrict":["sidebar","cms"],"default_area":"","allow_reuse":false,"menu_style":"menu","embeddable":true}]]></widget>
<widget key="albums"><![CDATA[{"class":"\\IPS\\Widget\\PermissionCache","restrict":["sidebar","cms"],"default_area":"","allow_reuse":true,"menu_style":"menu","embeddable":true}]]></widget>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories"><![CDATA[{"lang_key":"menu__gallery_gallery_categories","restriction":"categories_manage","keywords":["gallery categories","image categories"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;do=form"><![CDATA[{"lang_key":"menu__gallery_gallery_categories","restriction":"categories_manage","keywords":["add category"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_allow_comments"><![CDATA[{"lang_key":"category_allow_comments","restriction":"categories_manage","keywords":["allow comments","comments"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_approve_com"><![CDATA[{"lang_key":"category_approve_com","restriction":"categories_manage","keywords":["comments approved","must approved"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_can_tag"><![CDATA[{"lang_key":"category_can_tag","restriction":"categories_manage","keywords":["allow tags","tags"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_sort_options"><![CDATA[{"lang_key":"category_sort_options","restriction":"categories_manage","keywords":["default sort","sort order"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_tag_prefixes"><![CDATA[{"lang_key":"category_tag_prefixes","restriction":"categories_manage","keywords":["allow prefixes","prefixes"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_category_allow_albums"><![CDATA[{"lang_key":"category_allow_albums","restriction":"categories_manage","keywords":["allow albums"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_category_allow_reviews"><![CDATA[{"lang_key":"category_allow_reviews","restriction":"categories_manage","keywords":["allow reviews","reviews"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_category_approve_img"><![CDATA[{"lang_key":"category_approve_img","restriction":"categories_manage","keywords":["images must","must approved"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_category_description"><![CDATA[{"lang_key":"category_description","restriction":"categories_manage","keywords":["category description"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_category_name"><![CDATA[{"lang_key":"category_name","restriction":"categories_manage","keywords":["category name"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_category_show_rules"><![CDATA[{"lang_key":"category_show_rules","restriction":"categories_manage","keywords":["gallery rules","rules","show rules"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_gcategory_allow_rating"><![CDATA[{"lang_key":"gcategory_allow_rating","restriction":"categories_manage","keywords":["allow ratings","ratings"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_1_gcategory_parent_id"><![CDATA[{"lang_key":"gcategory_parent_id","restriction":"categories_manage","keywords":["parent category"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_approve_com"><![CDATA[{"lang_key":"category_approve_com","restriction":"categories_manage","keywords":["comments approved","must approved","comments must"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_description"><![CDATA[{"lang_key":"category_description","restriction":"categories_manage","keywords":["category description"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_show_rules"><![CDATA[{"lang_key":"category_show_rules","restriction":"categories_manage","keywords":["gallery rules","rules","show rules"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_gcategory_allow_rating"><![CDATA[{"lang_key":"gcategory_allow_rating","restriction":"categories_manage","keywords":["allow ratings","ratings"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_allow_albums"><![CDATA[{"lang_key":"category_allow_albums","restriction":"categories_manage","keywords":["albums","allow albums"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_allow_reviews"><![CDATA[{"lang_key":"category_allow_reviews","restriction":"categories_manage","keywords":["allow reviews","reviews"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_approve_img"><![CDATA[{"lang_key":"category_approve_img","restriction":"categories_manage","keywords":["items approved","must approved"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_description"><![CDATA[{"lang_key":"category_description","restriction":"categories_manage","keywords":["category description"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_name"><![CDATA[{"lang_key":"category_name","restriction":"categories_manage","keywords":["category name"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_show_rules"><![CDATA[{"lang_key":"category_show_rules","restriction":"categories_manage","keywords":["rules","show rules"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_gcategory_allow_rating"><![CDATA[{"lang_key":"gcategory_allow_rating","restriction":"categories_manage","keywords":["allow ratings","ratings"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_gcategory_parent_id"><![CDATA[{"lang_key":"gcategory_parent_id","restriction":"categories_manage","keywords":["parent","parent category"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=gallery_permission_custom_error"><![CDATA[{"lang_key":"category_permission_custom_error","restriction":"categories_manage","keywords":["custom error","permission denied"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=category_allow_comments"><![CDATA[{"lang_key":"category_allow_comments","restriction":"categories_manage","keywords":["allow comments","comments"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=category_approve_com"><![CDATA[{"lang_key":"category_approve_com","restriction":"categories_manage","keywords":["comments must","must approved"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=category_can_tag"><![CDATA[{"lang_key":"category_can_tag","restriction":"categories_manage","keywords":["allow tags","tags"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=category_sort_options"><![CDATA[{"lang_key":"category_sort_options","restriction":"categories_manage","keywords":["default sort","sort order"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=category_tag_prefixes"><![CDATA[{"lang_key":"category_tag_prefixes","restriction":"categories_manage","keywords":["allow prefixes","prefixes"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_category_allow_albums"><![CDATA[{"lang_key":"category_allow_albums","restriction":"categories_manage","keywords":["allow albums"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_category_allow_reviews"><![CDATA[{"lang_key":"category_allow_reviews","restriction":"categories_manage","keywords":["allow reviews","reviews"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_category_approve_img"><![CDATA[{"lang_key":"category_approve_img","restriction":"categories_manage","keywords":["approved","images must","must approved"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_category_description"><![CDATA[{"lang_key":"category_description","restriction":"categories_manage","keywords":["category description"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_category_name"><![CDATA[{"lang_key":"category_name","restriction":"categories_manage","keywords":["category name"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_category_show_rules"><![CDATA[{"lang_key":"category_show_rules","restriction":"categories_manage","keywords":["rules","show rules"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_gcategory_allow_rating"><![CDATA[{"lang_key":"gcategory_allow_rating","restriction":"categories_manage","keywords":["allow ratings","ratings"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=form_new_gcategory_parent_id"><![CDATA[{"lang_key":"gcategory_parent_id","restriction":"categories_manage","keywords":["parent","parent category"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;subnode=0&amp;parent=1&amp;searchResult=gallery_permission_custom_error"><![CDATA[{"lang_key":"category_permission_custom_error","restriction":"categories_manage","keywords":["custom error","custom permission denied"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=category_sort_options"><![CDATA[{"lang_key":"category_sort_options","restriction":"categories_manage","keywords":["default sort","sort order"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_approve_img"><![CDATA[{"lang_key":"category_approve_img","restriction":"categories_manage","keywords":["approved","images must","must approved"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=categories&amp;searchResult=form_new_category_name"><![CDATA[{"lang_key":"category_name","restriction":"categories_manage","keywords":["category name"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=settings"><![CDATA[{"lang_key":"menu__gallery_gallery_settings","restriction":"settings_manage","keywords":["gallery settings"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=settings&amp;searchResult=form_gallery_bandwidth_period"><![CDATA[{"lang_key":"gallery_bandwidth_period","restriction":"settings_manage","keywords":["bandwidth log retention","bandwidth logs","number of hours"]}]]></acpsearch>
<acpsearch key="app=gallery&amp;module=gallery&amp;controller=settings&amp;searchResult=form_gallery_detailed_bandwidth"><![CDATA[{"lang_key":"gallery_detailed_bandwidth","restriction":"settings_manage","keywords":["bandwidth","bandwidth logs","store bandwidth logs"]}]]></acpsearch>
@@ -0,0 +1 @@
[]
+2 -2
View File
@@ -3,7 +3,7 @@
<table width='100%' cellpadding='0' cellspacing='0' border='0'>
<tr>
<td dir='{dir}' width='40' valign='top' class='hidePhone' style='width: 0; max-height: 0; overflow: hidden; float: left;'>
<img src='{$content->author()->get_photo( true, true )}' width='40' height='40' style='border: 1px solid #777777; vertical-align: middle;'>
<img src='{$content->author()->get_photo( true, true )}' width='40' height='40' style='border-radius: 6px; vertical-align: middle;'>
</td>
<td dir='{dir}' width='30' valign='top' class='hidePhone' style='width: 0; max-height: 0; overflow: hidden; float: left;'>
<br />
@@ -20,7 +20,7 @@
<table width='100%' cellpadding='5' cellspacing='0' border='0'>
{{if $container = $content->containerWrapper()}}
<tr>
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 1.5; font-size: 14px; color: #8d8d8d">
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 1.5; font-size: 14px; color: #5e7a98">
{$email->language->addToStack("email_posted_in", FALSE, array( 'sprintf' => array( $container->getTitleForLanguage( $email->language ) ) ) )}
</td>
</tr>
+4 -7
View File
@@ -6,9 +6,6 @@
"ContentRouter": {
"gallery": "IPS\\gallery\\extensions\\core\\ContentRouter\\gallery"
},
"CreateMenu": {
"gallery": "IPS\\gallery\\extensions\\core\\CreateMenu\\gallery"
},
"Dashboard": {
"Overview": "IPS\\gallery\\extensions\\core\\Dashboard\\Overview"
},
@@ -45,9 +42,6 @@
"MemberRestrictions": {
"Gallery": "IPS\\gallery\\extensions\\core\\MemberRestrictions\\Gallery"
},
"MemberSync": {
"Gallery": "IPS\\gallery\\extensions\\core\\MemberSync\\Gallery"
},
"Permissions": {
"Permissions": "IPS\\gallery\\extensions\\core\\Permissions\\Permissions"
},
@@ -56,10 +50,13 @@
"galleryImages": "IPS\\gallery\\extensions\\core\\Profile\\galleryImages"
},
"Queue": {
"CleanUpGalleryImages": "IPS\\gallery\\extensions\\core\\Queue\\CleanUpGalleryImages",
"Follow": "IPS\\gallery\\extensions\\core\\Queue\\Follow",
"RebuildGalleryImages": "IPS\\gallery\\extensions\\core\\Queue\\RebuildGalleryImages"
},
"SearchContent": {
"Albums": "IPS\\gallery\\extensions\\core\\SearchContent\\Albums",
"Images": "IPS\\gallery\\extensions\\core\\SearchContent\\Images"
},
"Sitemap": {
"Images": "IPS\\gallery\\extensions\\core\\Sitemap\\Images",
"Videos": "IPS\\gallery\\extensions\\core\\Sitemap\\Videos"
-23
View File
@@ -1,26 +1,3 @@
/**
* Friendly URL Structure
*
* For each value in the $furl array:
* The key should be the "SEO Template" - an identifier which you'll use when displaying a URL.
* The value should be an associative array with two or three elements: 'friendly' and 'real', and optionally 'verify':
* 'friendly'
* The friendly URL to use - encase variables in {curly braces} containing a symbol, followed by the name of the parameter that matches in the "real" URL
* The symbol should be # for numbers or @ for strings
* For example, if the "real" URL contains id=XXX, where XXX is a number, you should include {#id} somewhere in the friendly URL.
* You can also use the tag {?} for the "SEO Title" (that is, any variables that shouldn't be part of the real URL, such as the name of the topipc being viewed).
* If you want to support more than one SEO Title, you can give them zero-indexed keys like so: {?0} {?1} {?2}
* 'real'
* This should be the base of the real URL. You should not include parameters which will be parsed out from the friendly URL.
* 'verify'
* This should be the name of a class that contains a loadFromUrl() and an url() method. The dynamic URL (i.e. app=core&...) will be passed to loadFromUrl(), and the url()
* method will subsequently be called to retrieve the correct URL, ideal with ActiveRecord pattern classes.
*
* IMPORTANT: Ensure values are listed with the most specific ones first. This is to ensure that non-FURL redirects are done correctly. For example, if you have these FURLs:
* /index.php?app=myapp&module=mymodule&controller=mycontroller&do=myaction -> /myfolder/myaction
* /index.php?app=myapp&module=mymodule&controller=mycontroller -> /myfolder
* They must be provided in that order, otherwise the former will redirec to /myfolder/?do=myaction rather than /myfolder/myaction
*/
{
"topLevel": "gallery",
"pages": {
+101 -233
View File
@@ -1,118 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="gallery">
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.carousel.js" javascript_type="controller" javascript_version="107827" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.browse.carousel.js - Controller for Gallery carousel
*
* Author: Ehren Harber
*/
;( function(){
"use strict";
ips.controller.register('gallery.front.browse.carousel', {
initialize () {
this.carouselControls = this.scope[0].closest('[data-carousel-controls]');
this.carousel = document.getElementById(this.carouselControls.dataset.carouselControls);
if(this.carouselControls && this.carousel.scrollWidth > this.carousel.clientWidth){
this.showArrows();
} else {
return;
}
this.buttons = this.scope[0].querySelectorAll('[data-carousel-arrow]');
this.buttons.forEach(button => {
button.addEventListener('click', this.scrollPanels);
});
},
showArrows: function(){
this.carouselControls.hidden = false;
},
scrollPanels: function(ev) {
let carouselControls = this.closest('[data-carousel-controls]'),
carousel = document.getElementById(carouselControls.dataset.carouselControls),
direction = this.dataset.carouselArrow,
currentScroll = carousel.scrollLeft,
scrollByVar = getComputedStyle(carousel).getPropertyValue('--carousel--scroll'),
carouselChildWidth = carousel.firstElementChild.offsetWidth,
scrollBy = scrollByVar * (carouselChildWidth);
if (direction == 'prev'){
scrollBy = -scrollBy;
}
if (currentScroll == '0' && direction == 'prev'){
carousel.scrollLeft = carousel.scrollWidth;
} else if ((currentScroll == carousel.scrollWidth - carousel.clientWidth) && (direction == 'next')){
carousel.scrollLeft = 0;
} else {
carousel.scrollLeft = currentScroll + scrollBy;
}
},
});
}());]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.list.js" javascript_type="controller" javascript_version="107827" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
* ips.browse.list.js - Gallery browse list controller
*
* Author: Rikki Tissier
*/
;( function($, _, undefined){
&quot;use strict&quot;;
ips.controller.register('gallery.front.browse.list', {
initialize: function () {
this.on( 'change', '[data-role=&quot;moderation&quot;]', this.selectImage );
},
/**
* Toggles classes when the moderation checkbox is checked
*
* @param {event} e Event object
* @returns {void}
*/
selectImage: function (e) {
var row = $( e.currentTarget ).closest('.cGalleryImageItem');
row.toggleClass( 'cGalleryImageItem_selected', $( e.currentTarget ).is(':checked') );
}
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/global" javascript_name="ips.global.nsfw.js" javascript_type="controller" javascript_version="107827" javascript_position="1000250">;( function($, _, undefined){
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/global" javascript_name="ips.global.nsfw.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000200">;( function($, _, undefined){
&quot;use strict&quot;;
ips.controller.register('gallery.front.global.nsfw', {
initialize () {
this.on( 'click', '.ipsImageBlock__nsfw button', this.removeOverlays );
this.on( 'click', '.ipsNsfwOverlay button', this.removeOverlays );
},
removeOverlays( e ) {
e.preventDefault();
var expires = new Date();
let expires = new Date();
expires.setDate( expires.getDate() + 365 );
ips.utils.cookie.set( 'nsfwImageOptIn', true, expires.toUTCString() );
$('.ipsImageBlock__nsfw').fadeOut(500, function() { this.remove() });
$('.ipsNsfwOverlay').fadeOut(500, function() { this.remove() });
},
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.settings.js" javascript_type="controller" javascript_version="107827" javascript_position="1000050">/**
<file javascript_app="gallery" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.settings.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -169,7 +77,7 @@
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.chooseCategory.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.chooseCategory.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -246,41 +154,8 @@
* @returns {void}
*/
_resizeFormDiv: function (form) {
this.scope.find('[data-role="chooseAlbumType"]').hide();
var self = this;
var resize = function (animate) {
var height = form.innerHeight() + 130;
var submitHeight = form.find('.cGalleryDialog_submitBar').height();
if( animate ){
self.scope.closest('.cGalleryDialog').animate({
minHeight: ( height + submitHeight ) + 'px'
});
} else {
self.scope.closest('.cGalleryDialog').css({
minHeight: ( height + submitHeight ) + 'px'
});
}
}
form.show().css({
opacity: "0.001"
});
if( this.scope.closest('.ipsDialog').length ){
resize(true);
}
form.animate({
opacity: "1"
}, function () {
if( self.scope.closest('.ipsDialog').length ){
self._resizeTimer = setInterval( function () {
resize(false);
}, 500);
}
});
this.scope.find('[data-role="chooseAlbumType"]').attr("hidden", "");
form.removeAttr("hidden");
},
/**
@@ -369,7 +244,7 @@
});
}(jQuery, _));
]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.existingAlbums.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.existingAlbums.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -388,18 +263,7 @@
*/
initialize: function () {
this.on( 'click', '#elGallerySubmit_albumChooser > li', this.clickAlbum );
this._checkSelected();
},
/**
* Event handler for clicking an album entry
*
* @param {event} e Event object
* @returns {void}
*/
clickAlbum: function (e) {
$( e.currentTarget ).find('input[type="radio"]').prop( 'checked', true );
this._checkSelected();
this.clickAlbum();
},
/**
@@ -407,16 +271,16 @@
*
* @returns {void}
*/
_checkSelected: function () {
if( this.scope.find('input[name="existing_album"]:checked').length ){
this.scope.find('button[type="submit"]').prop( 'disabled', false );
clickAlbum: function (e) {
if( this.scope.find('[name="existing_album"]:checked').length ){
this.scope.find('[type="submit"]').prop( 'disabled', false );
} else {
this.scope.find('button[type="submit"]').prop( 'disabled', true );
this.scope.find('[type="submit"]').prop( 'disabled', true );
}
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.uploadImages.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.uploadImages.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -463,8 +327,8 @@
$('.cGallerySubmit_bottomBar').removeClass('ipsHide');
// We want to move the allowed types of files span
$('[data-role="allowedTypes"]').html( this.scope.find('span.ipsType_light.ipsType_small').html() );
this.scope.find('span.ipsType_light.ipsType_small').remove();
$('[data-role="allowedTypes"]').html( this.scope.find('span.i-color_soft.i-font-size_-2').html() );
this.scope.find('span.i-color_soft.i-font-size_-2').remove();
// And change the uploader message
this.scope.find('.ipsAttachment_supportDrag').html( ips.getString('uploader_add_images') );
@@ -547,7 +411,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.wrapper.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.wrapper.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -585,6 +449,7 @@
this.on( 'click', '[data-role="imageDescriptionUseEditor"]', this.setUpImageDescriptionRich );
this.on( 'click', '[data-role="imageDescriptionUseTextarea"]', this.setUpImageDescriptionPlain );
this.on( 'click', '[data-role="addCopyrightCredit"]', this.showCopyrightCredit );
this.on( 'click', '[data-role="saveDetails"]', this.saveDetails );
this.on( 'click', '[data-role="saveInfo"]', this.saveInfo );
// Handle events from uploader
@@ -607,8 +472,8 @@
* @returns {void}
*/
setup: function () {
// On initial load, destroy the ckeditor object as it will be recreated for each individual form
ips.ui.editor.destruct( this.scope.find('[data-ipseditor]') );
// On initial load, destroy the tiptap object as it will be recreated for each individual form
ips.ui.editorv5.destruct( this.scope.find('[data-ipseditorv5]') );
if( this.scope.find('.cGalleryDialog_imageForm').is(':visible') ){
this._enlargeUploadStep();
@@ -707,6 +572,38 @@
$(e.currentTarget).trigger('closeMenu');
},
/**
* Mobile-specific functionality for 'save' button
*
* @returns {void}
*/
saveDetails: function (e) {
if( e ){
e.preventDefault();
}
this._markActiveImageAsSaved();
// Show and then hide a 'saved' message
$(e.currentTarget).next('[data-role="savedMessage"]').fadeIn();
setTimeout( function () {
$(e.currentTarget).next('[data-role="savedMessage"]').fadeOut();
}, 2000 );
// Hide any error messages
if( e ){
$( e.currentTarget ).closest('.cGallerySubmit_details').find('[data-errorField]').hide();
}
// Mobile-only behavior
if( ips.utils.responsive.enabled() && ips.utils.responsive.currentIs('phone') ){
// Fade out details form
this._toggleDetailsPanelMobile(false);
// Remove active selection styles
this.scope.find('.cGallerySubmit_activeFile').removeClass('cGallerySubmit_activeFile');
}
},
/**
* Confirm the user wants to close the dialog
*
@@ -753,33 +650,22 @@
* @returns {void}
*/
setUpImageDetailsForm: function (e) {
// Remove selection from all other files
this.scope.find('.cGallerySubmit_activeFile').removeClass('cGallerySubmit_activeFile');
$( e.currentTarget ).addClass('cGallerySubmit_activeFile');
let imageId;
let tempId;
const detailsPanel = this.scope.find('[data-role="imageDetails"]');
// Get the image ID first
if ($(e.currentTarget).attr('data-uploading-temp-id')) {
// if the details pane was opened before the fileid was set, we use the existing temp id
imageId = $(e.currentTarget).attr('data-uploading-temp-id')
} else if( $( e.currentTarget ).attr('data-fileid').startsWith('o_') ) {
imageId = $('input[name="images_existing\\[' + $( e.currentTarget ).attr('data-fileid') + '\\]"').val();
if (!imageId) {
imageId = $(e.currentTarget).attr('data-fileid');
$(e.currentTarget).attr('data-uploading-temp-id', $(e.currentTarget).attr('data-fileid'))
}
} else if ( $(e.currentTarget).attr('data-fileid') && parseInt($(e.currentTarget).attr('data-fileid')) ) {
imageId = $( e.currentTarget ).attr('data-fileid');
} else {
// in this case, we assume it's still uploading
tempId = imageId = Math.round(Math.random() * Math.pow(2, 32)).toString(16)
$(e.currentTarget).attr('data-uploading-temp-id', imageId)
if( $( e.currentTarget ).attr('data-fileid').indexOf('o_') != -1 )
{
var imageId = $('input[name="images_existing\\[' + $( e.currentTarget ).attr('data-fileid') + '\\]"').val();
}
else
{
var imageId = $( e.currentTarget ).attr('data-fileid');
}
var imagePreview = $( e.currentTarget ).find('.ipsImage').attr('src');
var imagePreview = $( e.currentTarget ).find('[data-role="preview"] img').attr('src');
var detailsPanel = this.scope.find('[data-role="imageDetails"]');
// Hide our existing form, if any
detailsPanel.find('.cGallerySubmit_details, [data-role="submitHelp"]').hide();
@@ -793,7 +679,6 @@
}
} else {
// Otherwise, clone our existing form to use
$('[data-role="defaultImageDetailsForm"]').find('#cke_filedata__image_description_DEFAULT').remove();
var htmlToInsert = $('[data-role="defaultImageDetailsForm"]').html();
htmlToInsert = '<div id="image_details_' + imageId + '">' + htmlToInsert.replace( /name="image_tags_DEFAULT"/g, 'name="image_tags_DEFAULT" data-ipsAutocomplete ').replace( /_DEFAULT/g, '_' + imageId ) + "</div>";
@@ -807,25 +692,17 @@
var filenameWithoutExt = filename.replace(/\.[^/.]+$/, '');
$('#elInput_image_title_' + imageId ).val( filenameWithoutExt );
// Fix yes/no fields as they will reinitialize and break
detailsPanel.find('> form #image_details_' + imageId ).find('.ipsToggle').remove();
if( !_.isUndefined( imagePreview ) ){
imageForm
.find('.cGallerySubmit_preview')
.removeClass('ipsBox_transparent')
.removeClass('ipsNoThumb')
.removeClass('ipsNoThumb_video')
.html( $("<img class='ipsImage'/>").attr('src', imagePreview ) )
.html("<img src='" + imagePreview + "' alt='' />")
.show();
}
else {
imageForm
.find('.cGallerySubmit_preview')
.addClass('ipsBox_transparent')
.addClass('ipsNoThumb')
.addClass('ipsNoThumb_video')
.html("")
.html("<i></i>")
.show();
}
@@ -898,16 +775,16 @@
* @returns {void}
*/
setUpImageDescriptionRich: function(e) {
var currentDescription = $( e.currentTarget ).closest('[data-role="imageDescriptionTextarea"]')
.find( '> textarea' )
const currentDescription = $(e.currentTarget).closest('[data-role="imageDescriptionTextarea"]')
.find('> textarea')
.val()
.trim();
if( currentDescription.length ){
var editorObj = ips.ui.editor.getObj( $( e.currentTarget ).closest('[data-role="imageDescriptionTextarea"]')
const editorObj = ips.ui.editorv5.getObj($(e.currentTarget).closest('[data-role="imageDescriptionTextarea"]')
.prev('[data-role="imageDescriptionEditor"]')
.find('[data-ipseditor]') );
var editorInstance = editorObj.getInstance();
editorInstance.setData( currentDescription );
.find('[data-ipseditorv5]'));
const editorInstance = editorObj.getInstance();
editorInstance.commands.setContent( currentDescription );
$( e.currentTarget ).closest('[data-role="imageDescriptionTextarea"]')
.find( '> textarea' )
.val('');
@@ -927,9 +804,9 @@
* @returns {void}
*/
setUpImageDescriptionPlain: function (e) {
var editorObj = ips.ui.editor.getObj( $( e.currentTarget ).closest('[data-role="imageDescriptionEditor"]')
.find('[data-ipseditor]') );
var currentDescription = $( editorObj.getInstance().getData() ).text()
const editorObj = ips.ui.editorv5.getObj($(e.currentTarget).closest('[data-role="imageDescriptionEditor"]')
.find('[data-ipseditorv5]'));
const currentDescription = $(editorObj.getInstance().getHTML()).text()
.trim();
if( currentDescription.length ){
$( e.currentTarget ).closest('[data-role="imageDescriptionEditor"]')
@@ -980,12 +857,12 @@
// If we are submitting images, get the info we need
if( form.attr('id') == 'elGallerySubmit' ){
// Sync editor to its textarea
this.scope.find('[data-ipseditor]').each( function(){
this.scope.find('[data-ipseditorv5]').each( function(){
try {
var editorObj = ips.ui.editor.getObj( $( this ) );
var editorObj = ips.ui.editorv5.getObj( $( this ) );
var editorInstance = editorObj.getInstance();
$( this ).find('textarea[data-role="contentEditor"]').val( editorInstance.getData() );
$( this ).find('textarea[data-role="contentEditor"]').val( editorInstance.getHTML() );
} catch (err) {
Debug.error("Couldn't update textarea from editor");
}
@@ -1032,20 +909,7 @@
form.find('textarea[name="images_order"]').val( JSON.stringify( imageOrder ) );
// And get the individual image details and store in the submission
const tempIdMap = {}
form.find('[data-uploading-temp-id][data-fileid]').each(function() {
tempIdMap[$(this).attr('data-uploading-temp-id')] = $(this).attr('data-fileid');
})
form.find('textarea[name="images_info"]').val( JSON.stringify( $('#form_imageDetails').serializeArray().map(({name, value}) => {
for(const key in tempIdMap) {
if (name.includes(key)) {
name = name.replaceAll(key, tempIdMap[key])
break;
}
}
return {name, value}
}) ) );
form.find('textarea[name="images_info"]').val( JSON.stringify( $('#form_imageDetails').serializeArray() ) );
// Hide/disable some stuff
this.scope.find('[data-role="imageDetails"]').addClass('ipsHide');
@@ -1141,7 +1005,7 @@
if( response.imageTags && wrapper.find('.cGalleryTagsField').hasClass('ipsHide') ){
wrapper.find('.cGalleryTagsField').removeClass('ipsHide');
wrapper.find('.cGalleryTagsField .ipsFieldRow_content').append( response.imageTags );
wrapper.find('.cGalleryTagsField .ipsFieldRow__content').append( response.imageTags );
}
if( response.tagsField && wrapper.find('.cGalleryTagsButton').hasClass('ipsHide') ) {
@@ -1275,6 +1139,8 @@
wrapper.find('[data-role="images"]').animate({
opacity: "1"
});
dialogElem.find('.ipsDialog_close').hide();
$( document ).trigger( 'contentChange', [ wrapper ] );
});
@@ -1300,7 +1166,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.image.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150">/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.image.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1442,7 +1308,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.note.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.note.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1835,6 +1701,7 @@
var self = this;
// If the note block is now out of view, flip it to the other side
/*
var parent = this.scope.closest('.cGalleryViewImage');
var notePos = this.scope.position();
@@ -1861,6 +1728,7 @@
}
}
}
*/
// If this is a new note, we don't want to update the position remotely yet.
// We'll only do that once the note text is saved for the first time.
@@ -1900,7 +1768,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.notes.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.notes.js" javascript_type="controller" javascript_version="5000026" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1983,35 +1851,35 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.browse.js" javascript_type="template" javascript_version="107827" javascript_position="1000050">// Empty</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.submit.js" javascript_type="template" javascript_version="107827" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.submit.imageItem', " \
<div class='ipsAttach ipsImageAttach ipsPad_half ipsAreaBackground_light {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-isImage='1'>\
<ul class='ipsList_inline ipsImageAttach_controls'>\
<li data-role='insert' {{#insertable}}style='display: none'{{/insertable}}><a href='#' data-action='insertFile' class='ipsAttach_selection' data-ipsTooltip title='{{#lang}}insertIntoPost{{/lang}}'><i class='fa fa-plus'></i></a></li>\
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.browse.js" javascript_type="template" javascript_version="5000026" javascript_position="1000050">// Empty</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.submit.js" javascript_type="template" javascript_version="5000026" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.submit.imageItem', " \
<div class='ipsAttach ipsImageAttach {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-isImage='1'>\
<ul class='ipsImageAttach_controls'>\
<li data-role='insert' {{#insertable}}style='display: none'{{/insertable}}><a href='#' data-action='insertFile' class='ipsAttach_selection' data-ipsTooltip title='{{#lang}}insertIntoPost{{/lang}}'><i class='fa-solid fa-plus'></i></a></li>\
</li>\
<li class='ipsPos_right' {{#newUpload}}style='display: none'{{/newUpload}} data-role='deleteFileWrapper'>\
<li class='i-margin-start_auto' {{#newUpload}}style='display: none'{{/newUpload}} data-role='deleteFileWrapper'>\
<input type='hidden' name='{{field_name}}_keep[{{id}}]' value='1'>\
<a href='#' data-role='deleteFile' class='ipsButton ipsButton_verySmall ipsButton_light' data-ipsTooltip title='{{#lang}}attachRemove{{/lang}}'><i class='fa fa-trash-o'></i></a>\
<a href='#' data-role='deleteFile' class='ipsButton ipsButton--small ipsButton--soft' data-ipsTooltip title='{{#lang}}attachRemove{{/lang}}'><i class='fa-regular fa-trash-can'></i></a>\
</li>\
</ul>\
<div class='ipsImageAttach_thumb ipsType_center' data-role='preview' data-grid-ratio='65' data-action='insertFile' {{#thumb}}style='background-image: url( \"{{thumbnail}}\" )'{{/thumb}}>\
<div class='ipsImageAttach_thumb' data-role='preview' data-grid-ratio='65' data-action='insertFile' {{#thumb}}style='background-image: url( \"{{thumbnail}}\" )'{{/thumb}}>\
{{#status}}\
<span class='ipsImageAttach_status ipsType_light' data-role='status'>{{{status}}}</span>\
<span class='ipsAttachment_progress'><span data-role='progressbar'></span></span>\
<span class='ipsImageAttach_status i-color_soft' data-role='status'>{{{status}}}</span>\
<meter class='ipsMeter' data-role='progressbar' max='100'></meter>\
{{/status}}\
{{#thumb}}\
{{{thumb}}}\
{{/thumb}}\
</div>\
<h2 class='ipsType_reset ipsAttach_title ipsType_medium ipsTruncate ipsTruncate_line cGalleryImageAttach_info' data-role='title'>{{title}}</h2>\
<p class='ipsType_light cGalleryImageAttach_info'>{{size}} {{#statusText}}&middot; <span data-role='status'>{{statusText}}</span>{{/statusText}}</p>\
<h2 class='ipsAttach_title ipsTruncate_1 cGalleryImageAttach_info' data-role='title'>{{title}}</h2>\
<p class='cGalleryImageAttach_info'>{{size}} {{#statusText}}&middot; <span data-role='status'>{{statusText}}</span>{{/statusText}}</p>\
</div>\
");
ips.templates.set('gallery.submit.imageItemWrapper', " \
<div class='cGallerySubmit_fileList'>{{{content}}}</div>\
");]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="107827" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.notes.wrapper', " \
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="5000026" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.notes.wrapper', " \
<div class='cGalleryNote' data-controller='gallery.front.view.note' data-noteID='{{id}}' data-note=\"{{note}}\" {{#editable}}data-editable{{/editable}} data-posLeft='{{left}}' data-posTop='{{top}}' data-dimWidth='{{width}}' data-dimHeight='{{height}}'>\
<div class='cGalleryNote_border'></div>\
<div class='cGalleryNote_note' style='display: none'>\
@@ -2026,9 +1894,9 @@ ips.templates.set('gallery.notes.delete', " \
ips.templates.set('gallery.notes.edit', " \
<textarea>{{note}}</textarea>\
<ul class='ipsList_inline'>\
<li><button data-action='save' class='ipsButton ipsButton_light ipsButton_verySmall'>{{#lang}}save_note{{/lang}}</button></li>\
<li><a href='#' data-action='cancel'>{{#lang}}cancel_note{{/lang}}</a></li>\
<ul class='ipsButtons i-justify-content_start i-margin-top_2'>\
<li><button data-action='save' class='ipsButton ipsButton--positive'>{{#lang}}save_note{{/lang}}</button></li>\
<li><a href='#' class='ipsButton ipsButton--inherit' data-action='cancel'>{{#lang}}cancel_note{{/lang}}</a></li>\
</ul>\
");]]></file>
<order app="global" path="/dev/js//framework/">templates
+10 -6
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="gallery" version="107827">
<app key="gallery" version="5000026">
<word key="__app_gallery" js="0">Gallery</word>
<word key="frontnavigation_gallery" js="0">Gallery</word>
<word key="gallery_title" js="0">Gallery</word>
@@ -39,7 +39,6 @@
<word key="filestorage__gallery_Images" js="0">Gallery Images</word>
<word key="acp_search_title_gallery_Categories" js="0">Gallery Categories</word>
<word key="acp_search_title_gallery_Albums" js="0">Gallery Albums</word>
<word key="gallery_images" js="0">Images</word>
<word key="gallery_media" js="0">Gallery Videos</word>
<word key="block_gallery_Overview" js="0">Gallery Overview</word>
<word key="total_images" js="0">Total Images</word>
@@ -195,6 +194,7 @@
<word key="can_unhide_gallery_image" js="0">Can unhide images?</word>
<word key="can_view_hidden_gallery_image" js="0">Can view hidden images?</word>
<word key="can_delete_gallery_image" js="0">Can delete images?</word>
<word key="can_view_reports_gallery_image" js="0">Can view reported images?</word>
<word key="can_edit_gallery_image_comment" js="0">Can edit comments?</word>
<word key="can_hide_gallery_image_comment" js="0">Can hide comments?</word>
<word key="can_unhide_gallery_image_comment" js="0">Can unhide comments?</word>
@@ -215,6 +215,7 @@
<word key="can_edit_item_message_gallery_album" js="0">Can edit messages on albums?</word>
<word key="can_delete_item_message_gallery_album" js="0">Can delete messages on albums?</word>
<word key="can_delete_gallery_album" js="0">Can delete albums?</word>
<word key="can_view_reports_gallery_album" js="0">Can view reported albums?</word>
<word key="can_edit_gallery_album_comment" js="0">Can edit album comments?</word>
<word key="can_hide_gallery_album_comment" js="0">Can hide album comments?</word>
<word key="can_unhide_gallery_album_comment" js="0">Can unhide album comments?</word>
@@ -225,6 +226,7 @@
<word key="can_unhide_gallery_album_review" js="0">Can unhide album reviews?</word>
<word key="can_view_hidden_gallery_album_review" js="0">Can view hidden album reviews?</word>
<word key="can_delete_gallery_album_review" js="0">Can delete album reviews?</word>
<word key="can_view_reports_gallery_album_review" js="0">Can view reported album reviews?</word>
<word key="can_edit_gallery_image_review" js="0">Can edit reviews?</word>
<word key="can_hide_gallery_image_review" js="0">Can hide reviews?</word>
<word key="can_unhide_gallery_image_review" js="0">Can unhide reviews?</word>
@@ -273,6 +275,7 @@
<word key="bdate" js="0">Date</word>
<word key="bsize" js="0">Image size</word>
<word key="bandwidth_stats" js="0">Bandwidth Usage</word>
<word key="gallery_images" js="0">Images</word>
<word key="images_submitted" js="0">Images Submitted</word>
<word key="gdiskspace_used" js="0">Diskspace Used</word>
<word key="gaverage_filesize" js="0">Average Filesize</word>
@@ -332,6 +335,7 @@
<word key="image_new_album" js="0">Create new album?</word>
<word key="image__comment_placeholder" js="0">Add a comment...</word>
<word key="image_submit_comment" js="0">Submit Comment</word>
<word key="filedata__image_description" js="0">Description</word>
<word key="map_enabled" js="0">Show map?</word>
<word key="map_enabled_lightbox" js="0">Show map?</word>
<word key="map_privacy" js="0">Map privacy</word>
@@ -523,12 +527,10 @@
<word key="gallery_category_id" js="0">Category</word>
<word key="profile_gallery_gallery" js="0">Albums</word>
<word key="profile_gallery_galleryImages" js="0">Images</word>
<word key="choose_album" js="0">Choose Album</word>
<word key="choose_category" js="0">Choose Category</word>
<word key="upload_images" js="0">Upload Images</word>
<word key="image_information" js="0">Add Information</word>
<word key="process" js="0">Finish</word>
<word key="create_new_album" js="0">Create new album</word>
<word key="choose_selected_album" js="0">Use Selected Album</word>
<word key="submit_breadcrumb" js="0">Submit Image</word>
<word key="submit_directly_to" js="0">Post directly to the category %s</word>
@@ -550,7 +552,6 @@
<word key="create_album" js="0">Create Album</word>
<word key="create_an_album" js="0">Create an album</word>
<word key="add_to_existing_album" js="0">Add to an existing album</word>
<word key="choose_existing_album" js="0">Use an existing album</word>
<word key="change_album" js="0">change</word>
<word key="set_tags" js="0">Set tags...</word>
<word key="set_copyright" js="0">Set copyright...</word>
@@ -572,6 +573,7 @@
<word key="add_gallery_image_limit" js="0"><![CDATA[Planning to add these to an album? Albums can contain up to <strong>{# [1:image or video][?:images or videos]}</strong>.]]></word>
<word key="add_gallery_album_limit" js="0"><![CDATA[You can upload up to <strong>{# [1:image or video][?:images or videos]}</strong> to this album]]></word>
<word key="album_full" js="0">Album full</word>
<word key="choose_album" js="0">Choose Album</word>
<word key="album_full_desc" js="0">You can't add any more images to this album</word>
<word key="x_more_images_album" js="0">You can add {# [1:more image][?:more images]} to this album</word>
<word key="saving_images" js="0">Saving Images</word>
@@ -579,11 +581,13 @@
<word key="adding_to_category_x" js="0"><![CDATA[Adding images to <strong>%s</strong>]]></word>
<word key="add_copyright_image" js="0">Add a copyright for this image</word>
<word key="add_credit_image" js="0">Add a credit for this image</word>
<word key="create_new_album" js="0">Create new album</word>
<word key="cannot_create_album" js="0">Sorry, you don't have permission to create a new album in this category.</word>
<word key="used_max_albums" js="0">You can't create any more albums (maximum of %d).</word>
<word key="no_existing_albums" js="0">You have no albums in this category to choose from</word>
<word key="use_no_album" js="0">Continue without using an album</word>
<word key="uploading_to_x" js="0">Uploading to %s</word>
<word key="choose_existing_album" js="0">Use an existing album</word>
<word key="files_had_errors" js="0">Some files had errors</word>
<word key="copyright" js="0">Copyright</word>
<word key="set_copyright_desc" js="0">Sets the copyright for each image you're uploading except ones you individually add a copyright for.</word>
@@ -868,7 +872,7 @@
<word key="gallery_new_images_count" js="0">Number of new images to show</word>
<word key="gallery_nsfw" js="0">Enable NSFW?</word>
<word key="gallery_nsfw_desc" js="0">Images can be set as not safe for work (NSFW) and will appear blurred unless the member opts in to viewing them.</word>
<word key="gallery_image_is_nsfw" js="0">This image is NSFW</word>
<word key="gallery_image_is_nsfw" js="0">This media is NSFW</word>
<word key="gallery_nsfw_view_anyway" js="0">View anyway</word>
<word key="nsfw_set_all" js="0">Set NSFW on all</word>
<word key="nsfw_enable_all" js="0">Mark all images as not safe for work</word>
+7
View File
@@ -0,0 +1,7 @@
{
"Gallery": {
"type": "MemberListenerType",
"classname": "IPS\\gallery\\listeners\\Gallery",
"extends": "IPS\\Member"
}
}
+10 -8
View File
@@ -1702,16 +1702,18 @@
"zerofill": false
},
"image_file_size": {
"allow_null": false,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": "0",
"length": 20,
"name": "image_file_size",
"type": "BIGINT",
"length": 20,
"decimals": null,
"values": [],
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": false,
"auto_increment": false
"values": [],
"zerofill": false
},
"image_file_type": {
"allow_null": true,
@@ -2250,7 +2252,7 @@
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"default": "",
"comment": "",
"unsigned": true,
"auto_increment": false
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
[]
+26 -393
View File
@@ -1,360 +1,4 @@
{
"31000": "3.1.0 Beta 1",
"31001": "3.1.0 RC 1",
"31002": "3.1.0 RC 2",
"31003": "3.1.0",
"32000": "3.2.0 Beta 1",
"32001": "3.2.0 Beta 2",
"32002": "3.2.0 Beta 3",
"32003": "3.2.0",
"32004": "3.2.1",
"32005": "3.2.2",
"40000": "4.0.0 Beta 1",
"40001": "4.0.0 Beta 2",
"40002": "4.0.0 Beta 3",
"40003": "4.0.0 Beta 4",
"40004": "4.0.0 Beta 4a",
"40005": "4.0.0 Beta 6",
"40006": "4.0.0",
"40007": "4.0.1",
"40008": "4.0.2",
"40009": "4.0.3",
"40010": "4.0.4",
"41000": "4.1.0 Beta 1",
"41001": "4.1.0 Beta 2",
"41002": "4.1.0",
"41003": "4.1.1",
"42000": "4.2.0 RC 1",
"42001": "4.2.0",
"42002": "4.2.1",
"42003": "4.2.2",
"50000": "5.0.0 Beta 1",
"50001": "5.0.0 Beta 2",
"50002": "5.0.0",
"50003": "5.0.1",
"50004": "5.0.2",
"50005": "5.0.3",
"50006": "5.0.4",
"50007": "5.0.5",
"50008": "5.0.6",
"60000": "4.0.0",
"100000": "4.0.0 Beta 0",
"100001": "4.0.0 Beta 1",
"100002": "4.0.0 Beta 2",
"100003": "4.0.0 Beta 3",
"100004": "4.0.0 Beta 3a",
"100005": "4.0.0 Beta 4",
"100006": "4.0.0 Beta 4a",
"100007": "4.0.0 Beta 4b",
"100008": "4.0.0 Beta 5",
"100009": "4.0.0 Beta 5a",
"100010": "4.0.0 Beta 6",
"100011": "4.0.0 Beta 7",
"100012": "4.0.0 Beta 7a",
"100013": "4.0.0 Beta 8",
"100014": "4.0.0 RC1",
"100015": "4.0.0 RC2",
"100016": "4.0.0 RC3",
"100017": "4.0.0 RC4",
"100018": "4.0.0 RC5",
"100019": "4.0.0 RC5a",
"100020": "4.0.0 RC6",
"100021": "4.0.0 RC7",
"100022": "4.0.0 RC7a",
"100023": "4.0.0",
"100024": "4.0.1",
"100025": "4.0.2",
"100026": "4.0.3",
"100027": "4.0.4",
"100028": "4.0.5",
"100029": "4.0.5.1",
"100030": "4.0.6",
"100031": "4.0.6.1",
"100032": "4.0.7",
"100033": "4.0.8",
"100034": "4.0.8.1",
"100035": "4.0.9",
"100036": "4.0.9.1",
"100037": "4.0.9.2",
"100038": "4.0.10",
"100039": "4.0.10.1",
"100040": "4.0.10.2",
"100041": "4.0.11",
"100042": "4.0.12",
"100043": "4.0.12.1",
"100044": "4.0.13",
"100045": "4.0.13.1",
"101000": "4.1.0 Beta 1",
"101001": "4.1.0 Beta 2",
"101002": "4.1.0 Beta 3",
"101003": "4.1.0 Beta 4",
"101004": "4.1.0 Beta 5",
"101005": "4.1.0 Beta 6",
"101006": "4.1.0 Beta 7",
"101007": "4.1.0 Beta 8",
"101008": "4.1.0 Beta 9",
"101009": "4.1.0 Beta 10",
"101010": "4.1.0",
"101011": "4.1.1",
"101012": "4.1.2",
"101013": "4.1.3",
"101014": "4.1.3.1",
"101015": "4.1.3.2",
"101016": "4.1.4",
"101017": "4.1.4.1",
"101018": "4.1.5",
"101019": "4.1.5.1",
"101020": "4.1.5.2",
"101021": "4.1.6",
"101022": "4.1.6.1",
"101023": "4.1.7",
"101024": "4.1.8",
"101025": "4.1.8.1",
"101026": "4.1.9",
"101027": "4.1.10",
"101028": "4.1.11",
"101029": "4.1.11.1",
"101030": "4.1.12",
"101031": "4.1.12.1",
"101032": "4.1.12.2",
"101033": "4.1.12.3",
"101034": "4.1.13 Beta 1",
"101035": "4.1.13 Beta 2",
"101036": "4.1.13",
"101037": "4.1.13",
"101038": "4.1.13.1",
"101040": "4.1.13.2",
"101041": "4.1.13.2",
"101042": "4.1.14 Beta 1",
"101043": "4.1.14 Beta 2",
"101044": "4.1.14 Beta 3",
"101045": "4.1.14 Beta 4",
"101046": "4.1.14 Beta 5",
"101049": "4.1.14 Beta 6",
"101050": "4.1.14 Beta 7",
"101051": "4.1.14 RC",
"101052": "4.1.14",
"101053": "4.1.14.1",
"101054": "4.1.14.2",
"101055": "4.1.14.3",
"101056": "4.1.15",
"101057": "4.1.15 Beta 1",
"101058": "4.1.15 Beta 2",
"101059": "4.1.15 Beta 2a",
"101060": "4.1.15 Beta 3",
"101061": "4.1.15",
"101062": "4.1.15",
"101063": "4.1.15",
"101064": "4.1.16 Beta 1",
"101065": "4.1.16 Beta 2",
"101066": "4.1.16 Beta 3",
"101067": "4.1.16 Beta 4",
"101068": "4.1.16 Beta 5",
"101069": "4.1.16",
"101070": "4.1.16.1",
"101071": "4.1.17 Beta 1",
"101072": "4.1.17 Beta 1a",
"101073": "4.1.17 Beta 1b",
"101074": "4.1.17 Beta 2",
"101075": "4.1.17 Beta 3",
"101076": "4.1.17 Beta 3",
"101077": "4.1.17",
"101078": "4.1.17.1",
"101079": "4.1.18 Beta 1",
"101082": "4.1.18 Beta 1b",
"101083": "4.1.18 Beta 2",
"101084": "4.1.18 Beta 3",
"101085": "4.1.18",
"101088": "4.1.18.1",
"101089": "4.1.18.2",
"101090": "4.1.19 Beta 1",
"101091": "4.1.19 Beta 2",
"101092": "4.1.19 Beta 3",
"101093": "4.1.19",
"101094": "4.1.19.1",
"101095": "4.1.19.2 Beta 1",
"101096": "4.1.19.2",
"101097": "4.1.19.2",
"101098": "4.1.19.3",
"101099": "4.1.19.4",
"101100": "4.2.0 Beta 1",
"101101": "4.2.0 Beta 1",
"101102": "4.2.0 Beta 1",
"101103": "4.2.0 Beta 1",
"101104": "4.2.0 Beta 2",
"101105": "4.2.0 Beta 3",
"101106": "4.2.0 Beta 3a",
"101107": "4.2.0 Beta 4",
"101108": "4.2.0 Beta 4",
"101109": "4.2.0 Beta 5",
"101110": "4.2.0 Beta 5a",
"101111": "4.2.0 Beta 6",
"101112": "4.2.0 Beta 6a",
"101113": "4.2.0 Beta 6a",
"101114": "4.2.0 Beta 7",
"101115": "4.2.0 Beta 7a",
"101116": "4.2.0 Beta 8",
"101117": "4.2.0 Beta 8",
"102000": "4.2.0",
"102001": "4.2.0",
"102002": "4.2.0",
"102003": "4.2.0",
"102004": "4.2.1",
"102005": "4.2.2 Beta 1",
"102006": "4.2.2 Beta 2",
"102007": "4.2.2",
"102008": "4.2.2",
"102009": "4.2.2",
"102010": "4.2.3 Beta 1",
"102011": "4.2.3",
"102012": "4.2.3",
"102013": "4.2.3",
"102014": "4.2.4 Beta 1",
"102015": "4.2.4 Beta 2",
"102016": "4.2.4",
"102017": "4.2.4",
"102018": "4.2.4",
"102019": "4.2.4",
"102020": "4.2.4",
"102021": "4.2.5 Beta 1",
"102022": "4.2.5 Beta 2",
"102023": "4.2.5 Beta 3",
"102024": "4.2.5",
"102025": "4.2.5",
"102026": "4.2.5",
"102027": "4.2.5",
"102028": "4.2.5",
"102029": "4.2.5",
"102030": "4.2.6 Beta 1",
"102031": "4.2.6 Beta 1",
"102032": "4.2.6 Beta 2",
"102033": "4.2.6 Beta 3",
"102034": "4.2.6",
"102035": "4.2.6",
"102036": "4.2.6",
"102037": "4.2.7 Beta 1",
"102038": "4.2.7 Beta 2",
"102039": "4.2.7 Beta 3",
"102040": "4.2.7 Beta 4",
"102041": "4.2.7 Beta 5",
"102042": "4.2.7",
"102043": "4.2.7",
"102044": "4.2.7",
"102045": "4.2.7",
"102046": "4.2.7",
"102047": "4.2.8",
"102048": "4.2.8",
"102049": "4.2.9",
"103000": "4.3.0 Beta 1",
"103002": "4.3.0 Beta 2",
"103003": "4.3.0 Beta 3",
"103004": "4.3.0 Beta 4",
"103005": "4.3.0",
"103006": "4.3.1",
"103007": "4.3.1",
"103008": "4.3.1",
"103009": "4.3.2",
"103010": "4.3.2",
"103011": "4.3.3",
"103012": "4.3.3",
"103013": "4.3.3",
"103014": "4.3.3",
"103015": "4.3.3",
"103016": "4.3.3",
"103017": "4.3.3",
"103018": "4.3.3",
"103019": "4.3.3",
"103020": "4.3.3",
"103021": "4.3.4",
"103022": "4.3.4",
"103023": "4.3.4",
"103024": "4.3.4",
"103025": "4.3.4",
"103026": "4.3.5 Beta 1",
"103027": "4.3.5 Beta 2",
"103028": "4.3.5",
"103029": "4.3.5",
"103030": "4.3.5",
"103031": "4.3.5",
"103032": "4.3.5",
"103033": "4.3.6 Beta 1",
"103034": "4.3.6 Beta 2",
"103035": "4.3.6",
"103036": "4.3.6",
"103037": "4.3.6",
"103038": "4.3.6",
"103039": "4.3.6",
"104000": "4.4.0 Beta 1",
"104001": "4.4.0 Beta 2",
"104002": "4.4.0 Beta 3",
"104004": "4.4.0 Beta 4",
"104003": "4.4.0 Beta 4",
"104005": "4.4.0",
"104006": "4.4.0",
"104007": "4.4.0",
"104008": "4.4.0",
"104009": "4.4.1",
"104010": "4.4.1 Beta 2",
"104011": "4.4.1",
"104012": "4.4.1",
"104013": "4.4.1",
"104014": "4.4.1",
"104015": "4.4.2 Beta 1",
"104016": "4.4.2",
"104017": "4.4.2",
"104018": "4.4.2",
"104019": "4.4.2",
"104020": "4.4.2",
"104021": "4.4.3 Beta 1",
"104022": "4.4.3 Beta 2",
"104023": "4.4.3",
"104024": "4.4.3",
"104025": "4.4.3",
"104026": "4.4.4 Beta 1",
"104027": "4.4.4",
"104028": "4.4.4",
"104029": "4.4.4",
"104030": "4.4.5 Beta 1",
"104031": "4.4.5 Beta 2",
"104032": "4.4.5 Beta 2",
"104033": "4.4.5",
"104034": "4.4.5",
"104035": "4.4.5",
"104036": "4.4.5",
"104037": "4.4.5",
"104038": "4.4.6",
"104039": "4.4.6",
"104040": "4.4.6",
"104041": "4.4.7 Beta 1",
"104042": "4.4.7 Beta 2",
"104043": "4.4.7 Beta 3",
"104044": "4.4.7",
"104045": "4.4.8 Beta 1",
"104046": "4.4.8 Beta 2",
"104047": "4.4.8",
"104048": "4.4.9 Beta 1",
"104049": "4.4.9",
"104050": "4.4.9",
"104051": "4.4.9",
"104052": "4.4.9",
"104053": "4.4.9.1",
"104054": "4.4.9.1",
"104055": "4.4.9.2",
"104056": "4.4.9.2",
"104057": "4.4.10 Beta 1",
"104058": "4.4.10 Beta 2",
"104059": "4.4.10 Beta 3",
"104060": "4.4.10 Beta 4",
"104061": "4.4.10",
"104062": "4.4.10",
"104063": "4.4.10",
"104064": "4.4.10",
"104065": "4.4.10",
"104066": "4.4.10",
"104067": "4.4.10",
"104068": "4.4.10",
"104069": "4.4.10",
"104070": "4.4.11",
"105013": "4.5.0 Beta 1",
"105014": "4.5.0 Beta 1",
"105015": "4.5.0 Beta 2",
@@ -606,41 +250,30 @@
"107751": "4.7.16",
"107760": "4.7.17 Beta 1",
"107761": "4.7.17 Beta 2",
"107762": "4.7.17 Beta 3",
"107763": "4.7.17",
"107764": "4.7.17",
"107765": "4.7.17",
"107770": "4.7.18 Beta 1",
"107771": "4.7.18 Beta 2",
"107772": "4.7.18 Beta 3",
"107773": "4.7.18",
"107774": "4.7.18",
"107775": "4.7.18",
"107780": "4.7.19 Beta 1",
"107781": "4.7.19 Beta 2",
"107782": "4.7.19 Beta 3",
"107783": "4.7.19 Beta 4",
"107784": "4.7.19",
"107785": "4.7.19",
"107786": "4.7.19",
"107787": "4.7.19",
"107795": "4.7.20 Beta 1",
"107796": "4.7.20 Beta 2",
"107797": "4.7.20 Beta 3",
"107798": "4.7.20 Beta 4",
"107799": "4.7.20 Beta 5",
"107800": "4.7.20",
"107801": "4.7.20",
"107802": "4.7.20",
"107803": "4.7.20",
"107810": "4.7.21 Beta 1",
"107811": "4.7.21",
"107815": "4.7.22 Beta 1",
"107816": "4.7.22 Beta 2",
"107817": "4.7.22",
"107818": "4.7.22",
"107819": "4.7.22",
"107820": "4.7.22",
"107826": "4.7.23 Beta 1",
"107827": "4.7.23"
"500001": "5.0.0 Alpha 1",
"500002": "5.0.0 Alpha 2",
"5000003": "5.0.0 Alpha 3",
"5000004": "5.0.0 Alpha 4",
"5000005": "5.0.0 Alpha 5",
"5000006": "5.0.0 Alpha 5",
"5000007": "5.0.0 Alpha 5",
"5000008": "5.0.0 Alpha 5",
"5000009": "5.0.0 Alpha 6",
"5000010": "5.0.0 Alpha 7",
"5000011": "5.0.0 Alpha 8",
"5000012": "5.0.0 Alpha 9",
"5000013": "5.0.0 Alpha 9",
"5000014": "5.0.0 Alpha 9",
"5000015": "5.0.0 Alpha 10",
"5000016": "5.0.0 Alpha 11",
"5000017": "5.0.0 Alpha 11",
"5000018": "5.0.0 Alpha 12",
"5000019": "5.0.0 Alpha 12",
"5000020": "5.0.0 Alpha 12",
"5000021": "5.0.0 Alpha 13",
"5000022": "5.0.0 Alpha 14",
"5000023": "5.0.0 Alpha 15",
"5000024": "5.0.0 Alpha 16",
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1"
}