Changeset 38286 for platform

Show
Ignore:
Timestamp:
08/17/10 03:18:12 (4 years ago)
Author:
drry
Message:
  • fixed regexes.
  • et cetera.
Location:
platform/tdiary
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • platform/tdiary/js/draft.js

    r38284 r38286  
    2929      if (item.value == "" || DraftUtils.trim(item.value) == DraftUtils.trim(text)) { 
    3030        return false; 
    31       } else { 
    32         return true; 
    3331      } 
     32      return true; 
    3433    }); 
    3534    this.save(text, true); 
    36     // console.log('Draft.initialized'); 
     35    // console.log("Draft.initialized"); 
    3736  }, 
    3837 
     
    4544    } 
    4645    this.items.push({ 
    47       date: new Date().toString(), 
     46      date: new Date().getTime(), 
    4847      value: text 
    4948    }); 
     
    6766  titles: function() { 
    6867    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]; 
    7773      } 
    7874      return title + " (" + date + ")"; 
    7975    }, this); 
    80   }, 
     76  } 
    8177 
    8278}; 
     
    8480// ユーティリティ関数 
    8581var DraftUtils = { 
    86   // 日付を yyyy-mm-dd HH:MM:SS 形式に変換する 
     82  // 日付を YYYY-mm-dd HH:MM:SS 形式に変換する 
    8783  dateToString: function(date) { 
    88       var d = new Date(date); 
     84      var d = date || new Date(); 
    8985      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()); 
    10091      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      } 
    10198  }, 
    10299  // 文字列から改行と空白文字を取り除く 
    103100  trim: function(str) { 
    104     return str.replace(/\n+/g, "").replace(/\s+/g, ""); 
     101    return str.replace(/\s+/g, ""); 
    105102  } 
    106103}; 
     
    111108 
    112109// 保存対象のテキストエリア 
    113 var textarea = $('[name=body]'); 
     110var textarea = $("[name=body]"); 
    114111// 下書き一覧を表示するセレクトボックス 
    115 var select = $('[name=drafts]'); 
     112var select = $("[name=drafts]"); 
    116113// 自動保存の間隔(ミリ秒) 
    117114var autoSaveInterval = 5 * 1000; 
     
    123120  draft.save(textarea.val()); 
    124121  showSelectForm(true); 
    125 } 
     122}; 
    126123// 下書き読み込み 
    127124loadDraft = function() { 
    128125  textarea.val(draft.load(select.val())); 
    129126  showSelectForm(false); 
    130 } 
     127}; 
    131128// 下書き選択用のセレクトボックスを描画 
    132129showSelectForm = function(keepIndex) { 
     
    134131  select.empty(); 
    135132  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)); 
    137134    select.val(i); 
    138135  }); 
     
    140137    select.val(index); 
    141138  } 
    142 } 
     139}; 
    143140 
    144141// DOMイベント設定 
    145 $('#draft_load').click(loadDraft); 
     142$("#draft_load").click(loadDraft); 
    146143setInterval(saveDraft, autoSaveInterval); 
    147144textarea.change(saveDraft); 
    148145 
    149146showSelectForm(false); 
    150 // console.log('ready'); 
     147// console.log("ready"); 
    151148 
    152149}); 
  • platform/tdiary/plugin/draft.rb

    r38284 r38286  
    77# 
    88add_header_proc do 
    9         if /^(form|edit|preview|showcomment)$/ =~ @mode then 
     9        if /\A(form|edit|preview|showcomment)\z/ === @mode then 
    1010                %Q[<script src="js/draft.js" type="text/javascript"></script>] 
    1111        else