|
1 |
| -var flag_mode = false; |
2 | 1 | var flags = [];
|
3 |
| -function toggle_flag_mode(mode) { |
4 |
| - flag_mode = !flag_mode; |
5 |
| - if (flag_mode) { |
6 |
| - $('.time a').addClass('flaggable').click(function () { |
7 |
| - var time = $(this).text(); |
8 |
| - var line = $(this).closest('tr').attr('id').substring(4); |
9 |
| - var title = prompt('Enter flag title'); |
10 |
| - if (title != null) |
11 |
| - $.post(location.pathname + '/' + line + '/flags', {time: time, title: title}, |
12 |
| - function(id) { |
13 |
| - add_flag({line: line, time: time, title: title, id: id, user: nickname}); |
14 |
| - }); |
15 |
| - }); |
16 |
| - } else { |
17 |
| - $('.time a').removeClass('flaggable').unbind('click'); |
18 |
| - } |
19 |
| - |
20 |
| - var btn = $('#toggle-flag-mode'); |
21 |
| - var desc = $('#flag-mode-desc'); |
22 |
| - if (!flag_mode) { |
23 |
| - btn.text('깃발 꽂기'); |
24 |
| - desc.hide(); |
25 |
| - } else { |
26 |
| - btn.text('깃발 그만 꽂기'); |
27 |
| - desc.show(); |
28 |
| - } |
29 |
| -} |
30 | 2 | function add_flag(item) {
|
31 | 3 | flags.push(item);
|
32 | 4 | flags.sort(function(a, b) { return parseInt(a.line) - parseInt(b.line); });
|
33 | 5 | redraw_flags();
|
34 | 6 | }
|
35 | 7 | function redraw_flags() {
|
36 |
| - $('#flags ul').html(''); |
| 8 | + $('#flags').html(''); |
37 | 9 | if (flags.length > 0)
|
38 | 10 | $.each(flags, function (i, item) {
|
39 |
| - $('#flags ul').append('<li>' + item.time + ' <a href="' + location.pathname + '#line' + item.line + '">' + item.title + '</a></li>'); |
| 11 | + $('#flags').append('<li><a href="' + location.pathname + '#line' + item.line + '"><span class="time">' + item.time + '</span> ' + item.title + '</a></li>'); |
40 | 12 | });
|
41 |
| - else |
42 |
| - $('#flags ul').html('<li>아직 깃발이 하나도 없네요.</li>'); |
| 13 | + $('#flags').append('<li id="add-flag-link"><a href="#">깃발 추가...</a></li>'); |
43 | 14 | }
|
44 | 15 | function refresh_flags() {
|
45 | 16 | $.getJSON(location.pathname + '/flags', function (data) {
|
46 | 17 | flags = data;
|
47 | 18 | redraw_flags();
|
48 | 19 | });
|
49 | 20 | }
|
50 |
| -$(function() { |
51 |
| - $('#toggle-flag-mode').click(function () { |
52 |
| - toggle_flag_mode(); |
53 |
| - return false; |
| 21 | + |
| 22 | +var inFlagMode = false; |
| 23 | +function beginFlagMode() { |
| 24 | + if (inFlagMode) return; |
| 25 | + inFlagMode = true; |
| 26 | + $('#flag-mode-desc').fadeIn('fast'); |
| 27 | + $('.time a').addClass('flaggable'); |
| 28 | + $('#content').on('click', '.time a', function() { |
| 29 | + var time = $(this).text(); |
| 30 | + var line = $(this).closest('tr').attr('id').substring(4); |
| 31 | + var title = prompt('Enter flag title'); |
| 32 | + if (title) |
| 33 | + $.post(location.pathname + '/' + line + '/flags', {time: time, title: title}, |
| 34 | + function(id) { |
| 35 | + add_flag({line: line, time: time, title: title, id: id, user: window.NICKNAME}); |
| 36 | + alert('추가됨'); |
| 37 | + }); |
| 38 | + return false; |
54 | 39 | });
|
55 |
| - $('#refresh-flags').click(function () { |
56 |
| - refresh_flags(); |
57 |
| - return false; |
| 40 | +} |
| 41 | +function endFlagMode() { |
| 42 | + if (!inFlagMode) return; |
| 43 | + inFlagMode = false; |
| 44 | + $('#flag-mode-desc').fadeOut('fast'); |
| 45 | + $('.time a').removeClass('flaggable'); |
| 46 | + $('#content').off('click', '.time a'); |
| 47 | +} |
| 48 | +$(function() { |
| 49 | + $('#flags').on('click', '#add-flag-link', function() { |
| 50 | + beginFlagMode(); |
| 51 | + $('#flags').dropdown('toggle'); // hide dropdown |
| 52 | + return false; |
58 | 53 | });
|
59 | 54 | refresh_flags();
|
60 | 55 | });
|
0 commit comments