33188Migration to Active Storage as standard for attachments in RailsBecause of migration to Rails 6 and because ActiveStorage is now a very solid standard for file storage, it would be very nice to migrate current file management to ActiveStorage.
It ought to be mentioned that Active Storage supports also all major cloud storages like S3.0false2020-03-23T20:06:43Z2024-03-29T05:38:23Z40490login page back_url always use http not httpsI hava a Redmine 5.1.2.stable executed in container, and I use Apache HTTPD to proxy https to http port 3000. Evertyhing is working perfect, but my webpage is scaned by system and get a "Site does not enforce HTTPS" issue.
It says my login URL's back_url is http, not https. But all my service is running in https URL. How can I solve this issue to be
https://redmine.XXX.com/login?back_url=https%3A%2F%2Fredmine.XXX.com%2F
not
https://redmine.XXX.com/login?back_url=http%3A%2F%2Fredmine.XXX.com%2F0false2024-03-28T03:56:29Z2024-03-28T07:32:08Z40489`copyTextToClipboard` to make it easy to see that you have copied to the clipboardYou can copy the URL of an issue by clicking `Copy Link`, but sometimes you think you have copied it, but you have not.
How about a little popup saying `Copied!` to make it easier to see that it has been copied?
Here is an example of a patch.
<pre><code class="diff">
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 320efd263..12e4aa5d2 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -589,6 +589,28 @@ function randomKey(size) {
return key;
}
+function copiedPopup() {
+ $('<div>')
+ .css({
+ position: 'absolute',
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0,
+ margin: 'auto',
+ height: 20,
+ width: 80,
+ 'text-align': 'center'
+ })
+ .appendTo(document.body)
+ .text('Copied!')
+ .addClass('ui-state-default')
+ .delay(500)
+ .fadeOut(function() {
+ $(this).remove();
+ });
+}
+
function copyTextToClipboard(target) {
if (target) {
var temp = document.createElement('textarea');
@@ -602,6 +624,7 @@ function copyTextToClipboard(target) {
if ($(target).closest('.drdn.expanded').length) {
$(target).closest('.drdn.expanded').removeClass("expanded");
}
+ copiedPopup()
}
return false;
}
</code></pre>0false2024-03-28T02:03:12Z2024-03-28T02:03:12Z40488 Login page: the button 'Sign in' is displayed after clicking on the page*STR* :
* Open the login page
* Navigate to 'Sign in' button
* Click on the page on any place
*Result* :
The button 'Sign in' is displayed after clicking on the page according mockups
*Expected result:*
The button 'Sign in' is located on the page according to the mockups0false2024-03-27T19:09:20Z2024-03-27T19:09:20Z2024gantt chart editingThis is a patch to edit gantt chart.
You can move a bar and change start or due date.0false2008-10-11T23:54:05Z2024-03-26T06:55:26Z36162Add notification reason to the email instead of the default static email footerThe default email footer setting is:
> You have received this notification because you have either subscribed to it, or are involved in it.
> To change your notification preferences, please click here: http://hostname/my/account
This setting can be changed from Settings -> Notifications -> Email footer.
This approach have several issues:
* the text can be removed by an admin
* the text is not translatable
* the text is too generic and the user cannot understand why he received that notification
My proposal is to replace this text with the real reason of why the user received the notification. In this phase, I propose the following reasons with the according translations:
| *Reason* | *Message* | *Details* |
| @INVOLVED@ | You have received this notification because you are involved in. | user is either author, assignee or previous assignee |
| @MENTIONED@ | You have received this notification because you have been mentioned in. | user in mentioned in that event |
| @SUBSCRIBED@ | You have received this notification because you have subscribed to it. | user is subscribed to that event |
| @WATCHER@ | You have received this notification because you are watching it. | user is a watcher |
| @ADMIN@ | You have received this security notification because you are an administrator. | user is an admin and he received a security notification |
In the future, we can add even a more granular reason for the involved reason: author, assignee or previous assignee.
Also, I propose to always display the text "To change your notification preferences, please click here: %{link to my account}."
Below is an example from a security notification with both messages (first message is the new one; second message is the old one).
!{border: 1px solid grey; width: 30%}sn.png!0false2021-11-08T22:09:04Z2024-03-25T21:10:19Z40450Add API-Request for fetching Journals which has changed since a certain date/timeWe want to synchronize the redmine issues with our internal system.
For this purpose, we need a feature to fetch changed journal entries of an issue.
Editing a journal entry doesn't change the updated_on field of the issue.
Therefore, we would like to have a GET call like:
<pre>
https://domain.com/journals.json?updated_on=%3E%3D2024-03-25T07%3A24%3A03Z
</pre>
Currently, the journals endpoint only supports updates, but no GET requests.0false2024-03-25T14:12:31Z2024-03-25T14:12:31Z40449Add updated_on field in the issue journalWe would like to synchronize the redmine issues with our internal system via API.
For this purpose, we fetch the issues with:
<pre>
curl -H "X-Redmine-API-Key: secret" "https://domain.com/issues/58.json?include=children%2Cattachments%2Crelations%2Cchangesets%2Cjournals%2Cwatchers%2Callowed_statuses" -vv
</pre>
The journal is returned but we can't determine, which entry changed.
Therefore, it would be helpful to not only have the created_on but also the updated_on field.
The file app/views/issues/show.api.rsb needs an extra line at line 61:
...
api.created_on journal.created_on
*api.updated_on journal.updated_on*
api.private_notes journal.private_notes
...
0false1932024-03-25T13:52:42Z2024-03-25T13:53:55Z40448Accessing relations during issue destructionHello,
My goal is to propagate the deletion of an issue to change a custom field of the linked issue. So, I intercept the destruction of an issue.
I am encountering a problem with my script. During the destruction of an issue, I am unable to access the issue’s relations.
Is this a known and unsolvable problem due to the framework’s architecture, or am I just handling it very poorly?
Thank you in advance for your help.0false1922024-03-25T12:19:11Z2024-03-25T12:19:11Z3956Login by EmailI was looking at a "phpBB MOD":http://www.phpbb.com/community/viewtopic.php?f=69&t=636415#p3527055 and thought this is something good any site with user authentication could use.
It lets you login with your email address, and disallows people registering new usernames that match the emails of previously registered users.2009-04-200false2009-10-01T13:16:06Z2024-03-25T11:20:40Z40444The text on the location box isn't fully displayed after setting the text size on the device to XXL*Preconditions:*
The text size on the device is set to XXL
*Steps to reproduce:*
> > 1. Tap the "Weather icon".
> > 2. Swipe left to the "Weather location" page.
> > 3. Pay attention to the location box.
*Actual result:* The text on the location box isn't fully displayed after setting the text size on the device to XXL.
*Expected result:* The text on the location box is fully displayed after setting the text size on the device to XXL.0false242024-03-23T16:50:38Z2024-03-23T16:52:00Z40325Redmine Email Notification Issue - Help Needed for Modern AuthenticationHi,
We've recently configured Redmine for our organization, and while everything seems to be working smoothly, we're encountering an issue with email notifications.
We have configured the email delivery method to use SMTP, as shown below:
<pre><code class="ruby">
email_delivery:
delivery_method: :smtp
smtp_settings:
address: smtp.office365.com
port: 587
domain: smtp.office365.com
authentication: :login
user_name: "noreply@myorg.com"
password: "my~p@ssw0rd"
enable_starttls_auto: true
</code></pre>
However, when attempting to send a test email, we receive the following error:
> An error occurred while sending mail (535 5.7.139 Authentication unsuccessful, basic authentication is disabled. [BM1PR01CA0164.INDPRD01.PROD.OUTLOOK.COM 2024-02-28T11:48:49.884Z 08DC38275E4F25C6])
Our research suggests that Redmine may not fully support modern authentication methods by default, and Microsoft's deprecation of basic authentication for Office 365 further complicates this situation.
We would greatly appreciate your guidance on how to address this issue and ensure successful email notifications from Redmine.
Below are the Redmine installation information.
<pre><code class="yaml">
Environment:
Redmine version 5.0.3.stable
Ruby version 2.6.10-p210 (2022-04-12) [x64-mingw32]
Rails version 6.1.7
Environment production
Database adapter Mysql2
Mailer queue ActiveJob::QueueAdapters::AsyncAdapter
Mailer delivery smtp
Redmine settings:
Redmine theme Default
SCM:
Git 2.41.0
Filesystem
Redmine plugins:
no plugin installed
</code></pre>
Thank you for your time and assistance.0false2024-02-28T11:59:45Z2024-03-22T12:20:24Z13143Populate dropdown custom field list based on previous another selection Do you have an idea how to build custom field like below:
http://railscasts.com/episodes/88-dynamic-select-menus
It would be great custom field.0false2013-02-12T15:23:20Z2024-03-22T10:46:06Z38740Enhanced collapsing/expanding functionalities for Gantt ChartI have added new three features to the Gantt Chart that enhance its collapsing/expanding functionalities.
h4. 1. Maintain Collapse State of Child Elements:
Currently, when expanding parent elements in the Gantt Chart, the collapse state of child elements would reset.
With this new feature, the collapse state of child elements is maintained even when expanding parent elements.
!maintain_collapse_state_of_child_elements.gif!
h4. 2. Expand All Subelements with Ctrl+Click:
By holding the Ctrl key and clicking on a parent element, all its subelements will be expanded.
(This is equivalent to the current behavior.)
!expand_all_subelements_with_ctrl-click.gif!
h4. 3. Collapse All Subelements with Ctrl+Click:
By holding the Ctrl key and clicking on a parent element, all its subelements will be collapsed.
!collapse_all_subelements_with_ctrl-click.gif!0false2023-06-18T15:12:25Z2024-03-22T04:57:14Z40442reply hyperlink requires class nameHi,
I am a redmine user who is designing redmine themes. I am currently having difficulties with the design of the forum pages. For example, the hyperlinks such as 「 *reply* 」do not have any CSS class name for me to design, the same situation also occurs on the news page.(Please refer to the attached file)
Should a CSS class name be added to this hyperlink? I think it's necessary0false2024-03-22T04:00:01Z2024-03-22T04:06:49Z1448Add tags to issuesMany of our issues span multiple categories -- or more specifically, we'd like to be able to search and manage them with something more flexible than just categories.
It'd be great if there was a way to add tags to issues.2008-06-140false2008-06-14T02:59:25Z2024-03-22T03:15:42Z35676Optimize performance of syntax highlighting implementation* re-implement performance optimizations of #26055
* don't send input through syntax highlighting if it:
** does not need to be highlighted, or
** can not be highlighted
0false2021-08-03T10:11:22Z2024-03-21T17:05:39Z37978New email notification option - Only for things I watchCurrently there is no way to stop receiving notifications on an issue I'm no longer have interest in. Because I'm always involved, the owner or assigned to.
With this option I would receive notifications only for issues I'm activelly watching.
0false2022-11-29T11:34:27Z2024-03-21T08:10:38Z29405Support header Content Security Policy Hi,
According Google, this a basic Content Security Policy.
<pre>
Content-Security-Policy: default-src https:; script-src https: 'unsafe-inline'; style-src https: 'unsafe-inline'
</pre>
Redmine crash with it because there is some call to eval in javascript in some pages.
Regards,
Ludovic
0false2018-08-18T12:31:20Z2024-03-20T09:53:35Z40426Can't view on RedmineDear Team Supoort,
In my internal system there is a redmine system to serve users. I had a project 5 years ago. Now I have to trace the log as well as that ticket. I can still open that ticket but I cannot open the file. attach on that ticket, is this the redmine system that deletes itself or something like that? help me
Thanks0false2024-03-19T11:57:41Z2024-03-19T12:51:47Z40425Custom fields » Tasks » New custom field » Format » List » Possible values text colourAny ideas on how to highlight the font colors after submit a issue, I selected a point? use in list format.
--Please Select--
%{color:red}Testuser%
%{color:orange}Testuser%
%{color:blue}Testuser%0false2024-03-19T11:43:49Z2024-03-19T11:43:49Z40422Print name and email to request that was create through emailWe have introduced an enhancement to our email-based task creation functionality.
Traditionally, we have utilized the IMAP method for generating new tasks through emails, as detailed on the Redmine documentation page: https://www.redmine.org/projects/redmine/wiki/redminereceivingemails#Fetching-emails-from-an-IMAP-server.
Due to security considerations, we opted against using the parameter unknown_user="create" which would automatically create a new Redmine user if the email sender wasn't recognized. Instead, we chose the unknown_user="accept" setting. This approach, however, resulted in tasks that seemed to be created by an anonymous user, without indicating the email sender's identity.
To address this issue, we've added a novel parameter "insert_name_and_email_to_description". When set to 1, this parameter ensures that the sender's name and email address are included in the first line of the task description in the format <<<[name-from-header];[email-sender]>>> as illustrated in the attached screenshot.
!Screenshot%202024-03-18%20at%2013.24.09.png!
Below is an example of how we invoke the script with this new parameter:
<pre><code class="shell">
/opt/bitnami/ruby/bin/bundle exec /opt/bitnami/ruby/bin/rake redmine:email:receive_imap RAILS_ENV="production" host="xxx" username="xxx" password="xxx" unknown_user="accept" no_permission_check=1 project="xxx" no_account_notice=1 insert_name_and_email_to_description=1 --trace
</code></pre>
It's important to note that the "insert_name_and_email_to_description" parameter is optional. If it's not set, or if its value is 0, the functionality reverts to its previous behavior.
I am also attaching a "patch" file detailing these modifications against the last commit on the master branch in our git repository.0false2024-03-18T12:28:38Z2024-03-19T04:35:07Z40421Not able to fetch email through o365 email IDHi,
I have tried to fetch email through the o365 email id, but not able to do it. Is there any advanced configuration required? My email account is configured with the two-step authentication. We are using a work account.
Thanks,
Vishal Patel0false2024-03-18T05:34:18Z2024-03-18T05:34:18Z40415Document Journals API#10171 added an API to update journal's notes. This should be documented in the Wiki, namely "Rest_Journals":/projects/redmine/wiki/Rest_Journals?parent=Rest_api0false2024-03-16T11:57:44Z2024-03-16T11:57:44Z40411The watch button/link should show if the issue is watched by groupWhen a user watches an issue because of a group membership and the user does not have the `view_issue_watchers` permission, the user cannot see that she is watching the issue.
Currently the button link shows:
- "Watch" when the user is not watching the issue or watching via a group
- "Unwatch" when the user is watching the issue
It would be possible to show a third state for the button/link:
- "Watch" when the user is not watching the issue
- "Watched by group" when the user is not watching the issue but is watching the issue via a group
- "Unwatch" when the user is watching the issue
The button/link would toggle between first and third state when the user is not also watching the issue via a group, and between second and third state when the user is also watching via a group.0false2024-03-15T21:12:38Z2024-03-15T21:27:30Z