
/**
 * 設定轉跳訊息頁面下的插值處理。
 * @param {BasicLayout} renderData 插值物件。
 * @param {string} route 路由路徑。
 * @param {Express.Session} session Express的Session物件。
 * @param {CallbackFunction} callback 回呼函式。
 */
function MessageFormRender(renderData, route, session, callback) {
    switch(true) {
        case route == "/signupmsg":                     // 註冊成功的轉跳頁面
            renderData.datas.title = "註冊成功!";
            renderData.datas.content = "您現在可以用您所註冊的帳號登入了!";
            renderData.datas.button1 = "登入";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/login'));";
            break;
        case route.includes("/homenotexist/"):          // 在「個人頁面」下找不到目標使用者時的轉跳頁面
            // 確認使用者名稱存在於路徑中
            if (route.length > 14) {
                let username = route.substr(14);        // 取得找不到的「使用者名稱」
                renderData.datas.title = "找不到 “" + username + "” 的個人頁面！"
            }
            else {
                renderData.datas.title = "找不到指定使用者的個人頁面！";
            }
            renderData.datas.content = "很抱歉，您所尋找的使用者並不存在！";
            renderData.datas.button1 = "首頁";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/'));";
            break;
            
        case route == "/personalinfo_updated":          // 在「編輯個人資料」頁面下，成功編輯個人資料後的跳轉提示頁面
            renderData.datas.title = "個人資料修改成功！";
            renderData.datas.content = "您的個人資料已成功更新！";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/home/" + renderData.username + "'));";
            break;

        case route == "/send_sitemail_successfully":    // 在「撰寫站內訊息」頁面下，成功編輯個人資料後的轉跳頁面。
            renderData.datas.title = "站內信發送成功！";
            renderData.datas.content = "您的站內信件已成功寄送！";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/home/" + renderData.username + "'));";
            break;
        case route == "/newpw_success":                 // 在「更變密碼」頁面下，成功更改密碼後的轉跳頁面。
            renderData.datas.title = "密碼更改成功！";
            renderData.datas.content = "您的密碼已經更改成功！";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/home/" + renderData.username + "'));";
            break;
        case route == "/painting_finished":             // 在「繪圖創作」頁面下，成功完成畫作之後的跳轉頁面。
            renderData.datas.title = "作品已完成！";
            renderData.datas.content = "您的畫作已經完成，您可以返回去欣賞您的畫作！";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/home/" + renderData.username + "'));";
            break;
        case route == "/painting_not_exist":            // 在找不到指定的圖畫作品之下的跳轉頁面
            renderData.datas.title = "找不到您的圖畫作品！";
            renderData.datas.content = "請確認您所指定的圖畫作品是否所屬於您，或是該作品是否存在。";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/home/" + renderData.username + "'));";
            break;
        case route == "/painting_deleted":              // 成功刪除指定圖畫作品後的跳轉頁面
            renderData.datas.title = "圖畫作品刪除成功！";
            renderData.datas.content = "您指定的圖畫作品已刪除成功！" + (session.paintingDeleted_Activity ? "請注意，投稿至活動上的圖畫不會被刪除！" : "");
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/home/" + renderData.username + "'));";
            // 若有被標記，則刪除paintingDeleted_Activity
            if (session.paintingDeleted_Activity)
                delete session.paintingDeleted_Activity;
            break;
        case route == "/newtheme/successful":           // 當成功處理了「投稿新主題」後的轉跳頁面
            renderData.datas.title = "新主題投稿成功！";
            renderData.datas.content = "您所投稿的新主題已成功地上傳！請等待最新一季的結果。";
            renderData.datas.button1 = "返回首頁";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/'));";
            break;
        case route == "/newtheme":                      // 當使用者在「投稿主題」路由上，但卻已經有投稿過主題的轉跳頁面
            renderData.datas.title = "您已經投稿過新主題了！";
            renderData.datas.content = "請等待下一次的「投稿主題」活動再進行發起主題的動作！。";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.history.back() );";
            break;
        case route == "/votetheme/success":             // 當成功處理了「主題票選」後的轉跳頁面
            renderData.datas.title = "候選主題投票成功！";
            renderData.datas.content = "您的投票資料已經成功送出！請等待下一次的主題投票。";
            renderData.datas.button1 = "返回首頁";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.location.replace('/'));";
            break;
        case route == "/votetheme":                     // 當使用者在「主題票選」路由上，但卻已經有票選過主題之後的跳轉頁面
            renderData.datas.title = "您已經對候選主題票選過了！";
            renderData.datas.content = "請等待下一次的「主題票選」活動再進行主題票選的動作！";
            renderData.datas.button1 = "返回";
            renderData.datas.script = "$('#btnAction1').on('click', () => window.history.back() );";
            break;
        default:                        // 其他未定義的伺服器訊息
            return callback(new Error("未定義的對應伺服訊息插值資料。"), null);
    }
    return callback(false, true);
}

module.exports.Render = MessageFormRender;