Wiki for 3arrows制作日記 3

今回は、Wikiの設定(色・ロック・共有編集可・共有編集不可)部分を主に作りこんだ。

フォーム部品を使う場合にIEでの挙動が心配なのだけど、3arrowsがIE8でうまく動かないようだ。。。動かないのは僕のアプリでした(><)直した。

通信中が分かるようにチャチャッとajaxアイコンを導入した。また通信中は、編集・削除ができないようにロックをかけた。

wiki一覧⇔wikiの閲覧と編集は、ページを遷移して行い、ブラウザの戻るに以前の状態が記録されるようにする。

こんな感じで、閲覧と編集用ページを書いていく。

<content view="wiki">
   <![CDATA[
        Wikiの閲覧・編集・履歴の確認
    ]]>
</Content>

このページに遷移するにはこんな感じにする。
location.href = baseUrl + '?view=wiki&wikiId=' + wiki.id;

baseUrlはとりあえずこんな感じでとっている。
baseUrl = (function(){
            var path = location.pathname;
            path = path.match( /#/) ? path.replace( /#.*/, '') : path;
            var ary = path.split( '/');
            return ary[ ary.length -1];
})()

コンテナが&view=を読み取って、意図したページを生成してくれる。3arrowsでは、Opensocialコンテナデフォルトのviewのほかに(home,profile,canvasなど)こんな感じにユーザーが独自に設定した値も使えるということになる。

次回は、いよいよWikiの閲覧と編集(履歴・エクスポート・インポート、、、できるか??)に入っていく。

それにしても、ひとつのxmlに設定、言語設定、css、html、jsと埋め込まれていてややこしい。でも、こうして自分でも作ってみると、3arrowsのレギュラーなアプリのコードのつくりの意図が見えてきたりする。

コードは以下。今回からxmlとjsを分けている。Aptanaがxml+js+html+cssなOpensocialに対応してないので。。。
http://code.google.com/p/gadget-os/source/detail?r=257&path=/tinywiki/3arrows/tinyWiki.3arrows.xml