diff options
-rw-r--r-- | patchwork/forms.py | 5 | ||||
-rw-r--r-- | patchwork/migrations/0019_userprofile_show_ids.py | 20 | ||||
-rw-r--r-- | patchwork/models.py | 3 | ||||
-rw-r--r-- | patchwork/templates/patchwork/patch-list.html | 25 |
4 files changed, 52 insertions, 1 deletions
diff --git a/patchwork/forms.py b/patchwork/forms.py index f42a224..0dd1185 100644 --- a/patchwork/forms.py +++ b/patchwork/forms.py @@ -107,7 +107,10 @@ class UserProfileForm(forms.ModelForm): class Meta: model = UserProfile - fields = ['items_per_page'] + fields = ['items_per_page', 'show_ids'] + labels = { + 'show_ids': 'Show Patch IDs:' + } def _get_delegate_qs(project, instance=None): diff --git a/patchwork/migrations/0019_userprofile_show_ids.py b/patchwork/migrations/0019_userprofile_show_ids.py new file mode 100644 index 0000000..d924184 --- /dev/null +++ b/patchwork/migrations/0019_userprofile_show_ids.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-03-26 20:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('patchwork', '0018_add_event_model'), + ] + + operations = [ + migrations.AddField( + model_name='userprofile', + name='show_ids', + field=models.BooleanField(default=False, help_text=b'Show click-to-copy patch IDs in the list view'), + ), + ] diff --git a/patchwork/models.py b/patchwork/models.py index 05c6976..a336219 100644 --- a/patchwork/models.py +++ b/patchwork/models.py @@ -138,6 +138,9 @@ class UserProfile(models.Model): items_per_page = models.PositiveIntegerField( default=100, null=False, blank=False, help_text='Number of items to display per page') + show_ids = models.BooleanField( + default=False, + help_text='Show click-to-copy patch IDs in the list view') @property def name(self): diff --git a/patchwork/templates/patchwork/patch-list.html b/patchwork/templates/patchwork/patch-list.html index 4b979ac..cdc368f 100644 --- a/patchwork/templates/patchwork/patch-list.html +++ b/patchwork/templates/patchwork/patch-list.html @@ -50,6 +50,18 @@ $(document).ready(function() { e.preventDefault(); }); }); + +{% if user.is_authenticated and user.profile.show_ids %} +function copyToClipboard(patch_id) { + input = document.createElement('input'); + input.setAttribute('type', 'text'); + input.setAttribute('value', patch_id); + input = document.body.appendChild(input); + input.select(); + document.execCommand('copy'); + input.remove(); +} +{% endif %} </script> <form method="post"> {% csrf_token %} @@ -65,6 +77,12 @@ $(document).ready(function() { </th> {% endif %} + {% if user.is_authenticated and user.profile.show_ids %} + <th> + ID + </th> + {% endif %} + <th> {% ifequal order.name "name" %} <a class="colactive" href="{% listurl order=order.reversed_name %}"> @@ -175,6 +193,13 @@ $(document).ready(function() { <input type="checkbox" name="patch_id:{{patch.id}}"/> </td> {% endif %} + {% if user.is_authenticated and user.profile.show_ids %} + <td> + <button type="button" class="btn btn-xs" + onClick="javascript:copyToClipboard('{{patch.id}}');" + title="Copy to Clipboard">{{ patch.id }}</button> + </td> + {% endif %} <td> <a href="{% url 'patch-detail' patch_id=patch.id %}"> {{ patch.name|default:"[no subject]"|truncatechars:100 }} |