From a786fc3b3d236de0fe876b829d07e3a2c37a8857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 22 Sep 2016 15:44:24 +0200 Subject: [PATCH] Some tweaks for shot editing --- attract/static/js/tasks.js | 27 ++++++++++++++------ src/templates/attract/shots/for_project.jade | 4 +-- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/attract/static/js/tasks.js b/attract/static/js/tasks.js index 383ff23..4c63a78 100644 --- a/attract/static/js/tasks.js +++ b/attract/static/js/tasks.js @@ -19,6 +19,16 @@ ; return this; }; + + $.fn.removeClassPrefix = function(prefix) { + this.each(function(i, el) { + var classes = el.className.split(" ").filter(function(c) { + return c.lastIndexOf(prefix, 0) !== 0; + }); + el.className = $.trim(classes.join(" ")); + }); + return this; + }; }(jQuery)); /** @@ -150,10 +160,11 @@ function task_save(task_id, task_url) { $task.find('span.type').text(saved_task.task_type); $task.find('span.status').text(saved_task.properties.status.replace('_', ' ')); - // FIXME: remove all existing status-XXX classes. $task - .removeClass('col-list-item task-list-item') - .addClass('col-list-item task-list-item status-' + saved_task.properties.status); + .removeClassPrefix('status-') + .addClass('status-' + saved_task.properties.status) + .flashOnce() + ; }, fail: function($item, xhr_or_response_data) { $('#task-details').html(xhr_or_response_data.responseText); @@ -165,12 +176,12 @@ function shot_save(shot_id, shot_url) { return attract_form_save('shot_form', 'shot-' + shot_id, shot_url, { done: function($shot, saved_shot) { // Update the shot list. - $('.shot-name-' + saved_shot._id).text(saved_shot.name).flashOnce(); - - // FIXME: remove all existing status-XXX classes. + $('.shot-name-' + saved_shot._id).text(saved_shot.name); $shot - .removeClass('col-list-item shot-list-item') - .addClass('col-list-item shot-list-item status-' + saved_shot.properties.status); + .removeClassPrefix('status-') + .addClass('status-' + saved_shot.properties.status) + .flashOnce() + ; }, fail: function($item, xhr_or_response_data) { $('#task-details').html(xhr_or_response_data.responseText); diff --git a/src/templates/attract/shots/for_project.jade b/src/templates/attract/shots/for_project.jade index cd774b1..5c81f8f 100644 --- a/src/templates/attract/shots/for_project.jade +++ b/src/templates/attract/shots/for_project.jade @@ -18,7 +18,7 @@ | {% endfor %} .table-body | {% for shot in shots %} - .table-row + .table-row(id="shot-{{ shot._id }}") .table-cell img(src="http://placehold.it/100x60") .table-cell.shot-name @@ -28,7 +28,7 @@ class="status-{{ shot.properties.status }}") span(class="shot-name-{{ shot._id }}") {{ shot.name }} | {% for task_type in task_types %} - .table-cell.task-name + .table-cell | {% for task in tasks_for_shots[shot._id][task_type] %} a( href="javascript:task_open('{{ task._id }}', '{{ project.url }}');",