2014/07/27

20140727-個人-運動需全停,全待傷養好


星期日,昨天去爬了松羅湖,

爬山的狀況,因為舊傷,而心情上,總是不能那麼的放鬆,
在到達松羅湖前,右膝又那樣重重的撞了一下~~~看來,這不死心是不行的。

我喜歡運動
我喜歡登山越野
我喜歡騎單車比賽


但,為了可以再次盡情的玩,我必需全力停止活動,
重心全放在拉筋、滾筒、游泳上。

拉筋有心的話
也可以像 蔡依琳 一樣,從筋骨不好,練到可以劈一字馬。

滾筒若有心的話
可以解除掉我整身肌肉僵硬的問題

游泳若有心的話
也可以舒展我的身體狀況。


晨泳,要像阿叡一樣,變成一個固定習慣。
這可以他們放鬆的大密寶呀!


說來,
若這樣的事情,我都無法克服的話
那就更別談更大的夢想,更多想做的事情了。


晨泳,爬起床所需的毅力,
這事若無法克服,認不清自已所缺乏的、「夢想叫不醒自已」的話
那這樣,我也就更沒資格談精進了。

-------

現在,我必需放下所有我想做的事情,
面對我真正的「核心問題」
有辦法處理掉它,我才可以再做這些想做的事情。


-------
前晚,雨柔所說的話,再加上在睡夢中,想了些事情,
我這樣傷都不能好的原因~~~

除了,當初以為「單車椅壂」的關係外,

想想,野跑上的方式,也變成我傷的主因 。

我負重(背水袋包)下去跑步

加重我脊椎上的壓力而不自知~~~~


所以,

放鬆 脊椎壓力 ,也是我該做的事情,
這也是我核心肌群不夠力所造成它受額外的壓力。

-------------------
心情:

現在的我,不會再為能不能運動而患得患失了~~~

我的心

要去「想像得出自已的未來」

讓自已所做的事,都是有目標,有意義的才是!


用心想,
用心想像自已的拉筋,就可以認真執行拉筋項目。

用心想像自已的未來樣子,就會認真的做好事情。


----------------

我的人生,是要有「夢想」的,是要有「野心」的!

記下這樣的心情。

以後,要好好過自已的人生!!

未來都是自已所建出來的。

加油!

(THE END)

2014/07/20

20140720-個人-一個會說故事的動畫師+今天感動的聲音(未寫完)






我想,要花些時間來好好品味這一篇的演講:

別把鑽石當玻璃珠:劉大偉 (Davy Liu) at TEDxTaipei 2013
https://www.youtube.com/watch?v=Lm4vgG-0loo




後來以無意聽到這有意境的聲音

https://www.youtube.com/watch?v=vsMS4OjRVkA

「下班之後,唯一能讓我快樂的事就是唱歌了。」

「想讓大家聽見我、認可我,
這樣會讓我覺得,我一直在堅持的 自已的夢想  是沒有錯的」

---------------------
我喜歡分享,喜歡分享有感動到我的事情,或是我可以做的事、
或是一件讓我開心的事。

而這樣的心情,在除了對外之外,我也希望為自已留下這份心情。
而日記,就是我記下沉澱的一個方式。

沒有特定的讀者,寫下自已想寫的文字。



(待整理)


2014/07/17

20140717-程式-針對jqGrid的應用-客製Inline Edit的編輯內容

這一功能還是練習記錄一下:

結果畫面:

這是基本的操作設定:


選了權限類別後,可以顯示資料 & 在頁上直接編輯 儲存。

=======



這是同一個頁面,同一個jqGird ,查詢後,特別處理設定值的部份,
讓它可以選擇「單位」/「人員」資訊。
(而單位/人員是 共用的元件資訊~~~)

==========================================
(當初在處理:新增時可以讓[帳號/設定值]可以改;而異動時只可以改[設定值],這段也花了不少功夫)


一開始的想法,是要試看看jqGrid 的 custom cell 可以到什麼什麼地步?

參考了這些文章:
 Custom template column:http://goo.gl/LFG42L
    jqgrid edittype:http://goo.gl/yzdVge
                    http://goo.gl/2HsWW8

而這定了了jqgrid 的colModel:
  colModel: [
            { name: "", hidden: true },@*指定它是unique row no*@
            { name: "ConfigType", hidden: true },
            { name: "iaccount", hidden: true },
                { name: "PersonalAccessConfigTypeDisplay", index: "PersonalAccessConfigTypeDisplay", width: 100 },
                { name: "iaccountDisplay", index: "iaccountDisplay", width: 100, editable: true, editrules: { required: true } },
                {
                    name: "fvalue", index: "fvalue",
                    formatter: jqGridFormatter,
                    unformat: jqGridUnFormatter,
                    editable: true, edittype: 'custom',
                    editoptions: { custom_element: jqGridEditElement, custom_value: jqGridEditValue }
                }
                ],

關鍵在:
edittype: 'custom',editoptions: { custom_element: jqGridEditElement, custom_value: jqGridEditValue

而這邊,先從試試,怎麼取到cell 的原始資料,
而我的JSON格式為:
{
        units: ["120102", "620110","220100"],
        members: ["910129", "910370"]

}

先試怎麼拿這資料,再一步步來處理這些呈現資訊。

=================================

先拿最基本的格式來處理:(即原本的:點選後可以文字編輯[設定值])

 //fvalue顯示格式處理
        function jqGridFormatter(cellvalue, options, rowObject) {
            return GetExecuteObj().DisplayFmt(cellvalue, options, rowObject);
        }
        //fvalue顯示格式Un處理
        function jqGridUnFormatter(cellvalue, options, cell) {
            return GetExecuteObj().DisplayUnFmt(cellvalue, options, cell);
        }
        //fvalue編輯時的呈現
        function jqGridEditElement(value, options) {
            return GetExecuteObj().EditFmt(value, options);
        }
        //fvalue編輯時的取值
        function jqGridEditValue(elem, operation, value) {
            return GetExecuteObj().EditValueFmt(elem, operation, value);
        }


這是試到最後的jqgrid 的 function :
1. 當你 呈現時有 format 過,一定要做[UnFormat] 的動作。
2. 因為要做成之後可以「共用」的地步,所以我用 GetExecuteObj() 來決定我要用什麼方式呈現。

定義Obj 的class (示意的javascript 版)

//預設的物件定義
        var DefaultObj = {
            //fvalue顯示格式處理
            DisplayFmt: function (cellvalue, options, rowObject) {
                var value = rowObject["fvalue"];
                return value != null ? value : "";//Access row data:http://goo.gl/r3aw7q
            },
            //fvalue顯示格式Un處理
            DisplayUnFmt: function (cellvalue, options, cell) {
                return cellvalue;//.replace("my", "");
            },
            //fvalue編輯時的呈現
            EditFmt: function (value, options) {
                var div = $("#template_input").clone();
                div.show();
                var myinput = $(div).find("#fvalue");
                myinput.val(value);
                return div;
            },
            //fvalue編輯時的取值
            EditValueFmt: function (elem, operation, value) {
                var div = $(elem);
                var myinput = $(div).find("#fvalue");
                alert(myinput.val());
                if (operation === 'get') {
                    return myinput.val();
                } else if (operation === 'set') {
                    myinput.val(value);
                }
            }
        }


所以我最後定義出:
//預設的物件定義  =>呈現 基本的 textbox 處理
        var DefaultObj = { ...}

 //組織人員物件   =>呈現組織&人員 檢視/編輯 的處理
        var MemberUnitObj = {...}

======================================

而其中,也試試如何 load template 資料到 cell 裡,一樣用基本的試驗。
若可以 把tempate 內的textbox 做呈現的話,那就可以試著載入其它不同的common controller

在這段程式裡就可以看出:
//我的template

    


//我的js 處理:
 EditFmt: function (value, options) {
                var div = $("#template_input").clone();
                div.show();
                var myinput = $(div).find("#fvalue");
                myinput.val(value);
                return div;
            },

我可以設定 html 內的元件完成後,再把它放到grid 裡,
至於為何要用「clone()」,因為若只用同一個,他操作過一次後就會不見了~~~~


而在更復雜的「單位人員」元件裡,除了 clone()後,我還要給html內的元件 unique ID
而在編輯時,我 單從它event 的參數,我無法直覺的知道 unique ID
所以 unique ID 就存在全域變數裡以便處理。


================================
在 jqgrid colModel下的設定,關鍵在這些:
formatter: jqGridFormatter,   //jqgrid 的display處理
unformat: jqGridUnFormatter, //要再把它unformat 拿到原始資料才可以。
edittype: 'custom',
editoptions: { custom_element: jqGridEditElement, custom_value: jqGridEditValue }

formatter/unformat:
一開始就用簡單的測試,在formatter時,在data 前面加個符號
就因為一開始沒有處理 unformat ,所以呈現時會越加越多~~~~~


custom_element://你要在edit mode 時要呈現什麼樣子
custom_value:   //這個要定義這個cell 的"值"要如何取得~~~這個function 不知為何,沒有event觸發它 ,所以我在儲存時,要自已想辦法 call 此 function .

=================================
之間有一個主題:我要預設勾選 它選擇的 tree 資料:



在設定單位值時,要等到它tree load 完後才可以做設定,
因一開始,資料有時有勾選到,有時又沒有帶到資料,本想放棄的~~但還是要找出原因來

.fn.set_selUnits_by_unitGUIDs = function (unitGUIDs) {
    var ucID = $(this).attr("id");
    $(this).value(unitGUIDs);
    //如果有設定值則預設checked
    var unitguids = $("#" + ucID).value();
    if (unitguids != null && unitguids != "") {
        var guidarray = unitguids.split(",");
        //判斷是否已載入,若未載入則reload
        if ($("#" + ucID + "_dynatree").dynatree("getRoot")._isLoading) {
            setTimeout(function () { $("#" + ucID).set_selUnits_by_unitGUIDs(unitGUIDs) }, 100);
            return;
        }
        var rootNode = $("#" + ucID + "_dynatree").dynatree("getRoot");
        rootNode.visit(function (node) {
            if ($.inArray(node.data.key, guidarray) >= 0) {
                node.select(true);
            }
        });
        $("#" + ucID).selUnitsDialog_confirmClick("", "", null, 1);
    }
    //如果有設定值則預設checked END
}


關鍵值:
$("#" + ucID + "_dynatree").dynatree("getRoot")._isLoading //判斷tree load完成了沒?
而我用 recall 的方式,來達到「一定要」設定到的功能。
用 setTimeout () 再一次呼叫自已~~
好在解決這問題,讓操作起來較順手~~~~
===============================================
結論:
程式一陣子沒寫,對於相關的jquery 寫法都陌生了,而透過 google 來找一些資料處理。
這次這樣一步步的實驗,將大方向切成一個個小目標達成。

也透過這樣的評估,來判斷「這條路」的可行性!

在當我完成心裡所想的這架構時,那種感覺,也算是程式開發人員的「小確幸」吧!

我喜歡這樣開發程式完成後所帶來的感覺!

所以,這份記錄,是記錄下這次的歷程,詳細的code ,以後要看再來翻翻。
而且盡量保留住那份心情。

(THE END)

















2014/07/13

20140713-日記-還是要寫日記+養傷中+騎車去游泳

還是要寫寫自已的日記.....


■手機忽然不可以充電,變得沒手機照相。
>因昨天看影片一直用,到它沒電後才要充,就....完全不能用,星一再送修。


今天本來是要去跟團爬「小觀音山」的,
結果, 昨日腳還是怪怪的,評估後,還是在家睡覺好了。
就沒有跟團上去  (再加上,跟的團,主辦人也取消)

昨天,帶著沅錡 他玩了一天,上午爬山,下午帶他去看電影,
而我回來後,好累就睡到晚上再起床,
而後來,又在網路亂逛,浪費一整晚的時間。

雨柔這禮拜在新竹讀書寫論文,就沒有特別吵她啦。
-----

今天睡到九點多,有FB上逛了一陣,到十一點多決定要出門。
騎著機車,到「北投游泳池」那游泳。

買機車後,第一次這樣騎出去自已晃晃~~~

近期身體肌群好硬,連拉筋的心都好懶。
就想,透過去游泳,多少可以放鬆一下。


忘了它和內湖的開放時間一樣,以為是整天都開,
到那兒沒開後,還是先去吃個東西好了。

星期日,找了一陣,沒有什麼素食開的。
到頭來,又是到便利商店吃便當 @@~~~


一點半,人好多呀!

今日就輕鬆游,算是長距離游完2KM~~~~


這期間就在想事情~~~


覺得,我對自已的目標不夠堅持,知道自已要的是什麼,但卻沒辦法堅持下去。

傷反而不是主因,
心的問題很大~~~我變得不像之前那樣擁有著「毅力」了。
這點,是我傷了三年期間一直好不起來的因素之一吧。

今天游泳,目標是2KM,
配速應是自已游才是,但,常常會分心 ,受到不同的東西影響~~~


讓自已保持著「微快樂」的心情

低潮沒辦法解決什麼事,
當下的生活一樣是重要的 ,別因這樣,人的動力就不見了。

我還是要保有自已的「野心」

有了「野心」,我就不會自卑,就會是推自已的人生一把的動力,


我的人生,是在我每天每天的「選擇」而決定的。

所以,保持「微開心」的人生吧。


游完泳回來後.......又在看FB~~~

後來太累,就先睡個覺,醒來,就是晚上8點多。

呼,再來就是好好伸展好了。

THE END