2
1
0
1 回答
- 210
このような JavaScript を適用できれば
課題作成画面が移動できるかもしれません...<script> (function() { var isClicked = false; var beforeClientX = null; var beforeClientY = null; var $createDialog = null; var $head = null; function getBeforeClientX(clientX) { return beforeClientX = beforeClientX || clientX; } function getDiffX(clientX) { return clientX - getBeforeClientX(clientX); } function getBeforeClientY(clientY) { return beforeClientY = beforeClientY || clientY; } function getDiffY(clientY) { return clientY - getBeforeClientY(clientY); } function setDialogPos(event) { // クリック中でなければ中断 if (!isClicked || !$createDialog) return; var marginLeft = parseInt($createDialog.css('margin-left'),10); var marginTop = parseInt($createDialog.css('margin-top'),10); // offset が取得できなければ中断 if (marginLeft === NaN || marginTop === NaN) { console.log('Cannot get margin.'); return; } var fixLeft = marginLeft + getDiffX(event.clientX); var fixTop = marginTop + getDiffY(event.clientY); $createDialog.css({ marginLeft: fixLeft + 'px', marginTop: fixTop + 'px' }); // 現在の client を before に設定する beforeClientX = event.clientX; beforeClientY = event.clientY; } /* * イベントやデータをリセットする */ function reset() { if ($createDialog) { $createDialog.off(); $createDialog = null; } if ($head) { $head.off(); $head = null; } isClicked = false; beforeClientX = null; beforeClientY = null; } /* * 課題作成画面を取得する */ function getCreateDialog() { var $createDialog = AJS.$('#create-issue-dialog'); if ($createDialog.size() > 0) return $createDialog; else return null; } JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function(e, context, reason) { // ダイアログ作成イベントでなければ中断 if (reason !== JIRA.CONTENT_ADDED_REASON.dialogReady) return; // 課題作成ダイアログが取得できなければ中断 $createDialog = getCreateDialog(); if (!$createDialog) return; $head = $createDialog.find('.jira-dialog-heading'); $head.css('cursor', 'move'); /* * クリックボタンが押されたときに isClicked を true にする * client のポジションも取得しておく */ $head.on('mousedown', function(event) { isClicked = true; beforeClientX = event.clientX; beforeClientY = event.clientY; }); // クリックボタンが解除されたときに isClicked を false にする $head.on('mouseup', function() { isClicked = false; }); // ドラッグしたときに要素を動かす AJS.$(window).on('mousemove', setDialogPos); }); // ダイアログが閉じられたときにリセットする AJS.$(document).bind("Dialog.hide", function(e, dialog) { if ($createDialog && $createDialog.get(0) === dialog.get(0)) { console.log('Create issue dialog was hidden.'); reset(); } }); })(); </script>
コメントを追加...
Jira で「作成」ボタンから課題を作成する際
課題作成のダイアログが表示されますが、
背景も見たいのでそのダイアログを移動できるようにしたいです。