自身でチェックアウト中のアルバムなどがあるときに工事全体チェックアウト状態に遷移できない。
解決したい状況:
削除アルバムのチェックアウト状態が工事を閉じるまで残ってしまって、その間に工事の編集(チェックアウト)ができない https://rocketchat.lecre.work/group/Dev_BS?msg=4myJGEtiJRsfdfFFg
修正方針:
「チェックアウトされているデータがあればチェックインする(が、チェックアウトの権利を維持しておく)」
+
「工事全体をチェックアウトする。そのためにrefreshする」
+
「工事全体のチェックアウトを試みる。成功したら終わり。失敗したら(権利を維持していた)最初にチェックアウトしていたデータをチェックアウトする」
https://rocketchat.lecre.work/group/Dev_BS?msg=tw95eZRqTAzoCJJzD
/**
* 工事全体のチェックアウトを試みる。
* すでにチェックアウトしている場合は何もせず、チェックアウト成功した時と同様にふるまう。
* 他が工事全体チェックアウト,本棚チェックアウト,いずれかのアルバムチェックアウト、のいずれかをしている場合にはチェックアウトできない。
* チェックアウトする直前にリフレッシュ()を呼び出して、サーバ上の最新状態に更新する。
* 内部でgoyoBookrackAccessorの設定変更を呼び出す場合がある。メソッド呼び出し側が、処理中にuiなどからgoyoBookrackAccessorへのアクセスが発生しないことを保証しなくてはならない。
* @returns
*/
async tryCheckOutConstruction(progressCb?: ProgressCallback): Promise<
| {
/** チェックアウトした */
checkouted: {}
}
| {
/** チェックアウトできない。他がチェックアウトしている。 */
conflict: {}
}
>
「いまのままで、単に「~の場合にはチェックアウトできない」みたいな条件を緩和するだけ」
https://rocketchat.lecre.work/group/Dev_BS?msg=EXDkqXuf5QMLiroz6