draw.io
便利なWebサービスを教えてもらったので共有
draw.io
https://www.draw.io/
ドラッグ&ドロップで、
ER、フロー、モックアップ等々が作成できます。
(参考)
無料で説明図を作るならドローツール「draw.io」に敵うものはないかも
http://nelog.jp/draw-io
たまにはSalesforce以外もね。
認定上級デベロッパー受験しました
業務の傍ら、上級デベロッパー1次受けてきました。
結果は合格でした。
新しい資格?が新設されるのか、既存のやつが移行するのか、内容がどうなのかとか...
あんまり知らないんですけど、そのうち知る機会も取る機会もやってくるだろうというスタイルでやってます。
近況としてはそんなところです。
未だにCKEditorとかChatterに苦しめられています。
CKEditorをVisualforceで適用する際のサンプルコードと注意点
2時間くらい嵌って、非常に焦ったのでログ。
CKEditorというJavascriptのプラグインを使って、
Visualforceでリッチテキスト型の項目の編集画面を作成しようとした場合に起きた事象について。
ユーザの有効なレコードタイプを判別するisAvailable()
レコードタイプ選択画面を自前で作成する場合、
もしくはレコードタイプの選択リストを生成する場合。
Schema.RecordTypeInfoを使うのですが、
Schemaで取得すると全部のレコードタイプが取れてしまうので、isAvailable()を使って制御してあげます。
ユーザの見える or 見えないレコードタイプを判別して、リストに詰め直すことができます。
Schema.DescribeSObjectResult objectDescribe = Event.SObjectType.getDescribe(); List<Schema.RecordTypeInfo> objectRTInfoList = objectDescribe.getRecordTypeInfos(); // 見える List<Schema.RecordTypeInfo> availableTrueList = new List<Schema.RecordTypeInfo>(); // 見えない List<Schema.RecordTypeInfo> availableFalseList = new List<Schema.RecordTypeInfo>(); Integer objectRTInfoListSize = objectRTInfoList.size(); for(Integer i=0; i<objectRTInfoListSize; i++){ if(objectRTInfoList[i].isAvailable()){ availableTrueList.add(objectRTInfoList[i]); }else{ availableFalseList.add(objectRTInfoList[i]); } }
Javascripのwindow.open()でオプションを設定する
カスタムボタンやカスタムリンクをクリックした際に、
新しくウィンドウを開く場合。
「新規ウィンドウに表示」ではなく、
「Javascriptを実行」で開くことで、プロパティを調整できます。
window.open( url, '_blank', 'toolbar=no , location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes' + ',width=' + 750 + ', height=' + 600 );
幅を指定したい時とか、
新しく開いたウィンドウでなんやかんやされたくない時とかに使えました。
DatePickerの西暦プルダウンを変更するJavascript
稼働が上がったため、更新が滞りました・・・今週から再開。
Salesforceの標準の編集画面や、
Visualforceで日付型をinputFieldで表示した際に出る、日付の入力補助。
あれの西暦プルダウンを弄る機会があったのでログ。
日付だけじゃなくて、時間の入力補助もデフォで用意しておいてくれないかなー。
Salesforce1ど同じやつで良いからさ。
DatePicker.pickDate = function(callOnChange,field,hasTime,element){ if(!DatePicker.datePicker){ DatePicker.datePicker = new DatePicker(); // 西暦年編集メソッドの呼び出しの追記 changeYears(); } DatePicker.datePicker.show(callOnChange,field,hasTime,element); } function changeYears() { //デフォルトで実装されているDatePickerの「年」リストを取得 var yearselect = document.getElementById('calYearPicker'); var range = 2100 - 1900; //一度リストを削除 for(var i=0; yearselect.length = 0; i++){ yearselect.options[i] = null; } for(var i=0; i < range;i++) { var newOption = document.createElement('option'); newOption.text = 1900 + i; newOption.value = 1900 + i; yearselect.add(newOption, null); } }