アップグレードが必要な理由
ある日付を過ぎた日付へのナビゲートを無効にする機能が必要なため、jscalendar(http://www.dynarch.com/projects/calendar/old/)からjscal2(http私のプロジェクトでは//www.dynarch.com/projects/calendar/)。しかし、新しいjscal2のホームページとドキュメントでは、次のことが言及されています-
これはまったく新しい製品であることに注意してください。
古いカレンダープロジェクトとは互換性がないことに注意してください。
問題
それで、私の現在のプロジェクトで最小限の変更でアップグレードが可能であるかどうか、そしてもしそうなら、それをどのように正確に行うか、私は混乱しています。私はすでにサイトにコメントを投稿しました-http ://www.dynarch.com/projects/calendar/discussion/そしていくつかの返事を待っています。とりあえず、この商品を使ったことのある人なら助けてくれるのではないかと思いましたので、ここで質問します。
私のプロジェクトの既存のコードはjscalendarバージョン1.51を使用しています(calendar.jsファイル--calendar.js、v 1.51にこの行が記述されていることがわかります)。function showCalendar()
これらのヘルパーコードには、次のように呼び出しを含む行がいくつかありますvar cal = new Calendar()
-
function setActiveStyleSheet()
function selected()
function closeHandler()
function showCalendar(){
...
//some lines of code
...
var cal = new Calendar(1, null, selected, closeHandler);
...
//some lines of code
...
}
....
ここで同じことを確認してくださいhttp://pastebin.com/QHAb0WdB
しかし、今日ダウンロードした新しいバージョンのデモには、そのヘルパースクリプトが表示されません。古いバージョンのすべてのjs/cssファイル、新しいバージョンのインクルードファイルを削除してみましたが、同じjscalendar.jsのみを保持していますが、このjsエラーが発生します-
_dynarch_popupCalendar is not defined
[Break On This Error] if (_dynarch_popupCalendar != null) {
onSelect
このように新しいカレンダーの開始にパラメータを追加することで、過去の日付を制限できると思いました-
onSelect: function() {
var date = Calendar.intToDate(this.selection.get());
LEFT_CAL.args.min = date; // setting minimum date, so as to not allow browsing past this date
LEFT_CAL.redraw();
this.hide();
}
しかし、ヘルパースクリプトの変更が失敗した後、何も試しませんでした。
正しいアップグレードプロセスについてご意見がありましたらお知らせください。何が足りないのかわかりません。
jsのインクルードを変更するのと同じくらい簡単で、cssファイルの可能性があり、コードを変更する必要はないと思っていました。必要に応じて、日付の無効化に対応するいくつかの構成パラメーターを設定する必要があります。
アップデート
今よりシンプルに!!
まず第一に、これはアップグレードではありません。jscal2(私が使用したいもの)のドキュメントには-
これはまったく新しい製品であることに注意してください。
古いカレンダープロジェクトとは互換性がないことに注意してください。
カレンダーを呼び出すために必要な最小値は-
Calendar.setup({
cont : "calendar-container" // a cont or a trigger
});
すべての引数はオプションです。ただし、cont(インラインカレンダーの場合)またはポップアップカレンダーのトリガーのいずれかを提供するか、ポップアップカレンダーを表示するための独自のコードを提供する必要があります。これをどのように行うことができるかは後で説明します。
このようなポップアップカレンダーを表示するには、そのコードを書く必要があると思います-
function showCalendar(){
...
//some lines of code
...
var cal = new Calendar();
...
//some code to display the calendar, based on the details already being passed to this function - which button was clicked, where to attach the calendar, etc.
...
}
しかし、ドキュメントにはそのようなコードはありませんでした。このコードで試しましたが、機能しません-
function trigger()
{
cal = new Calendar({
inputField: "startdate",
dateFormat: "%B %d, %Y",
bottomBar: false,
showTime:true
}
});
cal.redraw(); //blind try - does not work, but it does not give any errors. But I
don't see any other proper function to do this in the doc.
}
アイデアの人はいますか?
ありがとう
バウンティスタート
あまり良くない、最適化されていない解決策を見つけ、答えを投稿しましたが、それでも適切な解決策を探しています。