- Timestamp:
- 08/17/10 03:18:12 (3 years ago)
- Location:
- platform/tdiary
- Files:
-
- 2 modified
-
js/draft.js (modified) (8 diffs)
-
plugin/draft.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
platform/tdiary/js/draft.js
r38284 r38286 29 29 if (item.value == "" || DraftUtils.trim(item.value) == DraftUtils.trim(text)) { 30 30 return false; 31 } else {32 return true;33 31 } 32 return true; 34 33 }); 35 34 this.save(text, true); 36 // console.log( 'Draft.initialized');35 // console.log("Draft.initialized"); 37 36 }, 38 37 … … 45 44 } 46 45 this.items.push({ 47 date: new Date(). toString(),46 date: new Date().getTime(), 48 47 value: text 49 48 }); … … 67 66 titles: function() { 68 67 return this.items.map(function(item) { 69 var date = DraftUtils.dateToString(item.date); 70 var title; 71 if (!item.value) { 72 title = "No-Name"; 73 } else if (item.value.indexOf("\n") == -1) { 74 title = item.value; 75 } else { 76 title = item.value.substring(0, item.value.indexOf("\n")); 68 var date = new Date(item.date); 69 date = DraftUtils.dateToString(date); 70 var title = "No-Name"; 71 if (item.value && typeof item.value == "string") { 72 title = item.value.match(/.*/)[0]; 77 73 } 78 74 return title + " (" + date + ")"; 79 75 }, this); 80 } ,76 } 81 77 82 78 }; … … 84 80 // ユーティリティ関数 85 81 var DraftUtils = { 86 // 日付を yyyy-mm-dd HH:MM:SS 形式に変換する82 // 日付を YYYY-mm-dd HH:MM:SS 形式に変換する 87 83 dateToString: function(date) { 88 var d = new Date(date);84 var d = date || new Date(); 89 85 var year = d.getFullYear(); 90 var month = d.getMonth() + 1; 91 if (month < 10) { month = "0" + month } 92 var date = d.getDate(); 93 if (date < 10) { date = "0" + date } 94 var hour = d.getHours(); 95 if (hour < 10) { hour = "0" + hour } 96 var min = d.getMinutes(); 97 if (min < 10) { min = "0" + min } 98 var sec = d.getSeconds(); 99 if (sec < 10) { sec = "0" + sec } 86 var month = zp(d.getMonth() + 1); 87 date = zp(d.getDate()); 88 var hour = zp(d.getHours()); 89 var min = zp(d.getMinutes()); 90 var sec = zp(d.getSeconds()); 100 91 return year + "-" + month + "-" + date + " " + hour + ":" + min + ":" + sec; 92 93 function zp(s, l) { 94 s = String(s); l = l || 2; 95 while (s.length < l) { s = "0" + s; } 96 return s; 97 } 101 98 }, 102 99 // 文字列から改行と空白文字を取り除く 103 100 trim: function(str) { 104 return str.replace(/\ n+/g, "").replace(/\s+/g, "");101 return str.replace(/\s+/g, ""); 105 102 } 106 103 }; … … 111 108 112 109 // 保存対象のテキストエリア 113 var textarea = $( '[name=body]');110 var textarea = $("[name=body]"); 114 111 // 下書き一覧を表示するセレクトボックス 115 var select = $( '[name=drafts]');112 var select = $("[name=drafts]"); 116 113 // 自動保存の間隔(ミリ秒) 117 114 var autoSaveInterval = 5 * 1000; … … 123 120 draft.save(textarea.val()); 124 121 showSelectForm(true); 125 } 122 }; 126 123 // 下書き読み込み 127 124 loadDraft = function() { 128 125 textarea.val(draft.load(select.val())); 129 126 showSelectForm(false); 130 } 127 }; 131 128 // 下書き選択用のセレクトボックスを描画 132 129 showSelectForm = function(keepIndex) { … … 134 131 select.empty(); 135 132 jQuery.each(draft.titles(), function(i, title) { 136 select.append($("<option >").attr("value", i).text(title));133 select.append($("<option/>").attr("value", i).text(title)); 137 134 select.val(i); 138 135 }); … … 140 137 select.val(index); 141 138 } 142 } 139 }; 143 140 144 141 // DOMイベント設定 145 $( '#draft_load').click(loadDraft);142 $("#draft_load").click(loadDraft); 146 143 setInterval(saveDraft, autoSaveInterval); 147 144 textarea.change(saveDraft); 148 145 149 146 showSelectForm(false); 150 // console.log( 'ready');147 // console.log("ready"); 151 148 152 149 }); -
platform/tdiary/plugin/draft.rb
r38284 r38286 7 7 # 8 8 add_header_proc do 9 if / ^(form|edit|preview|showcomment)$/ =~@mode then9 if /\A(form|edit|preview|showcomment)\z/ === @mode then 10 10 %Q[<script src="js/draft.js" type="text/javascript"></script>] 11 11 else
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)