From 12fa60e6525828b63815c15bbdbe62af178d1f84 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jan 30 2016 10:05:46 +0000 Subject: [PATCH 1/8] Re-enable the submit buttons after submitting the form --- diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html index 7fab733..ca65c06 100644 --- a/pagure/templates/issue.html +++ b/pagure/templates/issue.html @@ -385,6 +385,7 @@ function try_async_comment(form) { $(form).off('submit'); form.submit(); }) + $(form).find('input[type="submit"]').removeAttr("disabled"); return false; }; {% endif %} diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index a043d3f..8a33669 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -807,6 +807,7 @@ function try_async_comment(form, inline) { form.submit(); }) $(form).on('submit'); + $(form).find('input[type="submit"]').removeAttr("disabled"); return false; }; {% endif %} From a1acb0ac75e296215e4f8c091e437e61bfd1a264 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jan 30 2016 10:05:46 +0000 Subject: [PATCH 2/8] Bring back the taglist id and create unique id for each tags This will make updating things with the event-source server much easier --- diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html index ca65c06..2113d3c 100644 --- a/pagure/templates/issue.html +++ b/pagure/templates/issue.html @@ -118,9 +118,13 @@ From bde0a2ce13e1cba50d8f5907657f58bc81d5e8ae Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jan 30 2016 10:05:46 +0000 Subject: [PATCH 3/8] Fix adding and removing tags to the UI via the event source server --- diff --git a/pagure/static/issue_ev.js b/pagure/static/issue_ev.js index 6e33609..0218515 100644 --- a/pagure/static/issue_ev.js +++ b/pagure/static/issue_ev.js @@ -15,43 +15,43 @@ clean_entry= function(text, element) { add_tags = function(data, _issues_url) { console.log('adding ' + data.added_tags); var field = $('#taglist'); - var field2 = $('#tag'); - var _curval = field2.val().split(','); + + + for (i=0; i ' + tag + ' '; + field.append(html); + } + + var input_field = $('#tag'); + var _curval = input_field.val().split(','); var _values = $.unique($.merge(data.added_tags, _curval)); - var _data = ''; var _out = ''; for (i=0; i<_values.length; i++ ){ tag = _values[i] - if (_data && _data != ',') { - _data += ','; - } - _data += _issues_url + '?tags=' + tag + '">' + tag + ''; - if (_out && _out != ',') { _out += ','; } _out += tag; } + input_field.val(_out); - field.html(_data); - field2.val(_out); } remove_tags = function(data, _issues_url) { console.log('removing ' + data.removed_tags); - var field = $('#taglist'); - var field2 = $('#tag'); - var _data = field.html(); - var _data2 = field2.val(); + + var input_field = $('#tag'); + var _out = input_field.val(); + for (var i=0; i' + tag + ''; - _data = clean_entry(_data, _turl).join(); - _data2 = clean_entry(_data2, tag).join(); + _out = clean_entry(_out, tag).join(); + $('#tag-' + tag).remove(); } - field.html(_data); - field2.val(_data2); + input_field.val(_out); } assigne_issue = function(data, _issues_url) { From 457cf2cbd80d876920af41327bde03c9793a2e8b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jan 30 2016 10:05:46 +0000 Subject: [PATCH 4/8] Fix adding and removing tags in the UI via the event source server --- diff --git a/pagure/static/issue_ev.js b/pagure/static/issue_ev.js index 0218515..0cab57a 100644 --- a/pagure/static/issue_ev.js +++ b/pagure/static/issue_ev.js @@ -15,43 +15,29 @@ clean_entry= function(text, element) { add_tags = function(data, _issues_url) { console.log('adding ' + data.added_tags); var field = $('#taglist'); - + var $select = $('#tag').selectize(); + var selectize = $select[0].selectize; for (i=0; i ' + tag + ' '; field.append(html); + selectize.createItem(tag); } - - var input_field = $('#tag'); - var _curval = input_field.val().split(','); - var _values = $.unique($.merge(data.added_tags, _curval)); - var _out = ''; - - for (i=0; i<_values.length; i++ ){ - tag = _values[i] - if (_out && _out != ',') { - _out += ','; - } - _out += tag; - } - input_field.val(_out); - } remove_tags = function(data, _issues_url) { console.log('removing ' + data.removed_tags); - var input_field = $('#tag'); - var _out = input_field.val(); + var $select = $('#tag').selectize(); + var selectize = $select[0].selectize; for (var i=0; i Date: Jan 30 2016 10:05:46 +0000 Subject: [PATCH 5/8] Fix setting/resetting the assignee of an issue via the event-source server --- diff --git a/pagure/static/issue_ev.js b/pagure/static/issue_ev.js index 0cab57a..09cd13a 100644 --- a/pagure/static/issue_ev.js +++ b/pagure/static/issue_ev.js @@ -41,24 +41,38 @@ remove_tags = function(data, _issues_url) { } assigne_issue = function(data, _issues_url) { - console.log('assigning ' + data.assigned); - var field = $('#assigneduser'); - var _url = _issues_url + '?assignee=' + data.assigned.name + '">' + data.assigned.name + ''; + console.log('assigning ' + data.assigned.name); + + var $select = $('#assignee').selectize(); + var selectize = $select[0].selectize; + selectize.settings.create = true; + selectize.createItem(data.assigned.name); + selectize.settings.create = false; + + var field = $('#assignee_plain'); + var _url = '\n' + + data.assigned.name + ''; field.html(_url); - field = $('#assignee'); - field.val(data.assigned.name); } unassigne_issue = function(data) { console.log('un-assigning '); - var field = $('#assigneduser'); - field.html(' '); - field = $('#assignee'); - field.val(''); + + var $select = $('#assignee').selectize(); + var selectize = $select[0].selectize; + selectize.setValue(null); + + var field = $('#assignee_plain'); + field.html('unassigned'); } add_deps = function(data, issue_uid, _issue_url) { console.log('adding ' + data.added_dependency); + + var $select = $('#depends').selectize(); + var selectize = $select[0].selectize; + if (data.issue_uid == issue_uid){ if (data.type == "children"){ var field = $('#blockers'); diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html index 2113d3c..1d2498f 100644 --- a/pagure/templates/issue.html +++ b/pagure/templates/issue.html @@ -138,7 +138,7 @@ {% if authenticated and repo_admin %} From 4690e88a416fc0be5c5a1980a1fa7ed2ad38324b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jan 30 2016 10:05:46 +0000 Subject: [PATCH 8/8] Kinda fix adding/removing depend tickets --- diff --git a/pagure/static/issue_ev.js b/pagure/static/issue_ev.js index 014d8f0..1d278c0 100644 --- a/pagure/static/issue_ev.js +++ b/pagure/static/issue_ev.js @@ -70,55 +70,51 @@ unassigne_issue = function(data) { add_deps = function(data, issue_uid, _issue_url) { console.log('adding ' + data.added_dependency); - var $select = $('#depends').selectize(); - var selectize = $select[0].selectize; - + var dep = data.added_dependency; if (data.issue_uid == issue_uid){ if (data.type == "children"){ - var field = $('#blockers'); - var field2 = $('#blocks'); + var $select = $('#blocks').selectize(); + var field = $('#blocklist'); + var _id = 'block'; } else { - var field = $('#dependencies'); - var field2 = $('#depends'); + var $select = $('#depends').selectize(); + var field = $('#dependlist'); + var _id = 'depend'; } } - var dep = data.added_dependency; - var _data = $.trim(field.html()); - var _url = _issue_url.replace('/-123456789', '/' + dep) + dep + ''; - if (_data && _data != ',') { - _data += ','; - } - _data += _url; - field.html(_data); - var _curval = field2.val().split(','); - var _values = $.unique($.merge(data.added_dependency, _curval)); - var _out = []; + var selectize = $select[0].selectize; + selectize.settings.create = true; + selectize.items.push(String(dep)); + selectize.createItem(String(dep)); + selectize.settings.create = false; + + var input_field = $('#' + _id + 's'); + input_field.val(selectize.items.join(',')); - if (_out && _out != ',') { - _out += ','; - } - field2.val(_out + dep); + var html = '\n#' + dep + ''; + + field.append(html); } remove_deps = function(data, issue_uid, _issue_url) { console.log('Removing ' + data.removed_dependency); if (data.issue_uid == issue_uid){ if (data.type == "children"){ - var field = $('#dependencies'); - var field2 = $('#depends'); + var $select = $('#depends').selectize(); + var _id = 'depend'; } else { - var field = $('#blockers'); - var field2 = $('#blocks'); + var $select = $('#blocks').selectize(); + var _id = 'block'; } } + + var selectize = $select[0].selectize; + var dep = data.removed_dependency; - // Set links - var _data = $.trim(field.html()).split(','); - var _url = _issue_url.replace('/-123456789', '/' + dep) + dep + ''; - field.html(clean_entry(field.html(), _url).join()); - // Set the value in the input field - field2.val(clean_entry(field2.val(), dep).join()); + $('#' + _id + '-' + dep).remove(); + selectize.removeItem(dep); } add_comment = function(data) { diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html index 90df413..299be71 100644 --- a/pagure/templates/issue.html +++ b/pagure/templates/issue.html @@ -158,11 +158,12 @@ @@ -177,11 +178,12 @@ @@ -346,9 +348,9 @@ source.addEventListener('message', function(e) { var _api_issues_url ='{{ url_for('api_ns.api_view_issue', username=username, repo=repo.name, issueid='-123456789')}}'; - var _issue_url =''; + repo=repo.name, issueid='-123456789')}}'; process_event(data, "{{ issue.uid }}", _issue_url, _issues_url, _api_issues_url); setup_edit_btns(); @@ -432,68 +434,68 @@ $( document ).ready(function() { maxItems: 1, create: false, load: function(query, callback) { - if (!query.length) return callback(); - $.getJSON( - "{{ url_for('api_ns.api_users') }}", { - pattern: query.term - }, - function( data ) { - callback( data.users.map(function(x) { return { user: x }; }) ); - } - ); + if (!query.length) return callback(); + $.getJSON( + "{{ url_for('api_ns.api_users') }}", { + pattern: query.term + }, + function( data ) { + callback( data.users.map(function(x) { return { user: x }; }) ); + } + ); } }); $('#blocks').selectize({ - plugins: ['remove_button'], - valueField: 'id', - labelField: 'id', - searchField: ['id', 'title'], - preload: 'focus', - render: { - option: function(item, escape) { - return '
'+escape(item.id)+' '+escape(item.title)+'
'; - }, - item: function(item, escape) { - return '
#'+escape(item.id)+'
'; - }, + plugins: ['remove_button'], + valueField: 'id', + labelField: 'id', + searchField: ['id', 'title'], + preload: 'focus', + render: { + option: function(item, escape) { + return '
'+escape(item.id)+' '+escape(item.title)+'
'; }, - create: false, - load: function(query, callback) { - $.getJSON( - "{{ url_for('api_ns.api_view_issues', username=username, repo=repo.name) }}", - function( data ) { - console.log(data.issues); - callback(data.issues); - } - ); - } + item: function(item, escape) { + return '
#'+escape(item.id)+'
'; + }, + }, + create: false, + load: function(query, callback) { + $.getJSON( + "{{ url_for('api_ns.api_view_issues', username=username, repo=repo.name) }}", + function( data ) { + //console.log(data.issues); + callback(data.issues); + } + ); + } }); $('#depends').selectize({ - plugins: ['remove_button'], - valueField: 'id', - labelField: 'id', - searchField: ['id', 'title'], - preload: 'focus', - render: { - option: function(item, escape) { - return '
'+escape(item.id)+' '+escape(item.title)+'
'; - }, - item: function(item, escape) { - return '
#'+escape(item.id)+'
'; - }, + plugins: ['remove_button'], + valueField: 'id', + labelField: 'id', + searchField: ['id', 'title'], + preload: 'focus', + render: { + option: function(item, escape) { + return '
'+escape(item.id)+' '+escape(item.title)+'
'; }, - create: false, - load: function(query, callback) { - $.getJSON( - "{{ url_for('api_ns.api_view_issues', username=username, repo=repo.name) }}", - function( data ) { - console.log(data.issues); - callback(data.issues); - } - ); - } + item: function(item, escape) { + return '
#'+escape(item.id)+'
'; + }, + }, + create: false, + load: function(query, callback) { + $.getJSON( + "{{ url_for('api_ns.api_view_issues', username=username, repo=repo.name) }}", + function( data ) { + //console.log(data.issues); + callback(data.issues); + } + ); + } }); $( "#clear_comment").click( @@ -523,23 +525,23 @@ $( document ).ready(function() { var _text = $( "#comment" ).val(); var _url = "{{ url_for('markdown_preview') }}"; $.ajax({ - url: _url , - type: 'POST', - data: { - content: _text, - csrf_token: "{{ form.csrf_token.current_token }}", - }, - dataType: 'html', - success: function(res) { - $( "#preview" ).html(res); - $( "#previewinmarkdown" ).removeClass("inactive"); - $( "#previewinmarkdown" ).addClass("active"); - $( "#comment" ).hide(); - $( "#preview" ).show(); - }, - error: function() { - alert('Unable to generate preview!'); - } + url: _url , + type: 'POST', + data: { + content: _text, + csrf_token: "{{ form.csrf_token.current_token }}", + }, + dataType: 'html', + success: function(res) { + $( "#preview" ).html(res); + $( "#previewinmarkdown" ).removeClass("inactive"); + $( "#previewinmarkdown" ).addClass("active"); + $( "#comment" ).hide(); + $( "#preview" ).show(); + }, + error: function() { + alert('Unable to generate preview!'); + } }); return false; } else if ($( "#previewinmarkdown" ).hasClass("active")){