NewDAR

update DAR faster

当前为 2025-04-18 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         NewDAR
// @namespace    http://tampermonkey.net/
// @version      1.5.23
// @description  update DAR faster
// @author       Conan
// @match        https://*.itinerisonline.com/affiliate/
// @require      https://code.jquery.com/jquery-2.2.4.min.js
// @icon         https://www.google.com/s2/favicons?sz=64&domain=itinerisonline.com
// @grant        none
// ==/UserScript==



$(document).ready(function() {
    'use strict';
    let isExternal=false;
    let noteType=0; // noteType: 0:Attx 1:External,  2:Medication
    let prts=getPrtsArr();
    let attx=[];

    let attxCode=""
//console.log("11111---------",JSON.stringify(prts[1].noAM?false:true))

    //jquery extend
    $.getUrlParam=function(name){

        let reStr="",hrefStr=window.location.href;

        if(hrefStr.indexOf(name)>=0){
            reStr=hrefStr.split("?")[1].split(name+"=")[1].split("&")[0]
        }


        return reStr
    }

    //add the attendance days button function
    $(".footer:first").html($(".footer:first").html()+`<button id='day1' class='attxDay btn btn-primary'>Monday</button>
<button id='day2' class='attxDay btn btn-primary'>Tuesday</button>
<button id='day3' class='attxDay btn btn-primary'>Wednesday</button>
<button id='day4' class='attxDay btn btn-primary'>Thursday</button>
<button id='day5' class='attxDay btn btn-primary'>Friday</button>
<!--<button id="dar" class="hideTable btn btn-primary">switch</button>-->
<button id="External" class="btn btn-success">External</button>
<button id="Medication" class="btn btn-success">Medication</button>
<button id="Acupuncture" class="btn btn-success">Acupuncture</button>
<button id="popOutCode" class="popOutCode btn btn-danger">popOutCode</button>
`)

    $(".footer:first").html($(".footer:first").html()+`
    <div id='hightLightPrt'>
        <button id="rt1" class="selectedRoute">1</button>
        <button id="rt2" class="selectedRoute">2</button>
        <button id="rt3" class="selectedRoute">3</button>
        <button id="rt4" class="selectedRoute">4</button>
        <button id="rt5" class="selectedRoute">5</button>
        <button id="rt6" class="selectedRoute">6</button>
        <button id="rt7" class="selectedRoute">7</button>
        <button id="rt8" class="selectedRoute">8</button>
        <button id="rt9" class="selectedRoute">9</button>
        <button id="rt10" class="selectedRoute">10</button>
        <button id="rtjow" class="selectedRoute">joe</button>
        <button id="rtwilson" class="selectedRoute">wilson</button>
    </div>
    <div id='mainTable'>
    <form><table style="width:100%;font-size:20px;background:#4E2236;color:#4E2236" id="dar_table"></table></form>
    </div>`);
    $('#hightLightPrt').hide();
    let tableInner=`
    <tr style="color:#F26363">
    <th style="width:3%"><input type="reset" name="prts" id="check_all" value="reset"></th>
    <th style="width:7%">Prt ID</th>
    <th style="width:15%">Prt Name</th>
	<th style="width:10%">A Leg location</th>
    <th style="width:10%">B leg Location</th>
    <th style="width:10%">Begin Time</th>
    <th style="width:10%">End Time</th>
    <th style="width:12%">Appt Type</th>
    <th style="width:15%">Notes</th>
    <th style="width:8%">AM/PM</th>
  </tr>`;

//fill the prt to the table
    console.log(JSON.stringify(prts))
    for(let prt of prts){
        let temp="<tr class='each_prt' style='background:#E997A7;border-bottom:1px solid #000000'>";
        temp+=`<td><input type="checkbox" class="prtBox" name="prts" id="${prt.id}" style="zoom:200%"></td>`;
        temp+=`<td class="prt_id_">${prt.id}</td>`;
        temp+=`<td>${prt.name}</td>`;
        temp+=`<td><input style='background-color:transparent' size='10' type="text" class="A_leg" id="${prt.id}_A_leg_id" value="${prt.address?prt.address:prt.id}"><input type="hidden" class="org_A_lag" value="${prt.address?prt.address:prt.id}"</td>`;
        temp+=`<td><input style='background-color:transparent' size='10' type="text" class="B_leg" id="${prt.id}_B_leg_id" value="490078"><br></td>`;
        temp+=`<td><input style='background-color:transparent' size='10' class="beginTime" type="text" id="${prt.id}_Begin_Time" value="${prt.amTime?prt.amTime:'10:00'}"></td>`;
        temp+=`<td><input style='background-color:transparent' size='10' class="endTime" type="text" id="${prt.id}_End_Time" value="15:30"></td>`;
        temp+=`<td><input style='background-color:transparent' class="AppType" type="text" id="${prt.id}_appt_type" value="Center Attendance"></td>`;
        temp+=`<td><input style='background-color:transparent' class="prtNote" type="text" id="${prt.id}_note" value="${prt.note?prt.note:''}"></td>`;
        temp+=`<td>am:<input style='background-color:transparent;zoom:180%' class="am" type="checkBox" id="${prt.id}_am" ${!prt.noAm?"checked":""}>
                   pm:<input style='background-color:transparent;zoom:180%' class="pm" type="Checkbox" id="${prt.id}_pm" ${!prt.noPm?"checked":""}></td>`;


        temp+="</tr>";
        tableInner+=temp;
    }
    tableInner+=`<tr><td colspan="8"><button id="submit">submit</button></td></tr>`;


    $("#dar_table").html(tableInner);


    $(".prtBox").click(function(e){

        let temp = buildPrtList(this.id)

        if($(this).is(":checked")){
            //temp+=(prt.id+'\n')
            attx.push(temp);
        }else{
            attx=attx.filter(p=>p!=temp)
        }
        //alert(attxList)
        $("#pasteArea").val(attx.join("\n"));
        attxCode=attx.join("\n");

    })

    //add the listener to the button
    $(".attxDay").click(function(e){
        attxCode=""
        let day=this.id.replace("day","")
        attx=[];
        for(let prt of prts){
            let temp = buildPrtList(prt.id)
            if(prt.comeDay.indexOf(day)>=0 && !$("#"+prt.id).is(":checked")){
                $("#"+prt.id).prop("checked",true)
                attx.push(temp);

            }else{
                $("#"+prt.id).prop("checked",false);
                attx=attx.filter(p=>p!=temp);
            }
        }
        attxCode=attx.join("\n");
        $("#pasteArea").val(attx.join("\n"));
    })

//Mouseover high light the prt
    $(".each_prt").mouseover(function(){
        $(this).css("background-color","#F26363");

    }).mouseout(function(){
        $(this).css("background-color","#E997A7");
    })

    //add a button to show and close
    $('.hideTable').click(function(e){
        let hightLight=$('#hightLightPrt');
        let mainTable=$("#mainTable")
        if(this.id=="dar"){//switch to be hight Light mode
            this.id="hl";
            hightLight.show();
            mainTable.hide();
        }else{//switch to be dar mode
            this.id="dar";
            mainTable.show();
            hightLight.hide();
        }
    })

    $('.selectedRoute').click(function(e){
        let route=this.id.substr(2,this.id.length);
        //console.log(route)
        $(".da-pending").css({
            background:"white"
        });
        for(let i=0;i<prts.length;i++){
            let obj=prt[i];
            //if(obj.name.indexOf()
        }
    })

    $("#External").click(function(e){
        if(this.innerText==="External"){
            $(".each_prt").each(function(){
                $(this).find(".AppType")[0].value="External Appointment";
                $(this).find(".A_leg")[0].value="490078";
                $(this).find(".B_leg")[0].value="";
            })
            this.innerText="Attendance"
            isExternal=true;
            noteType=1
        }else{
            $(".each_prt").each(function(){
                $(this).find(".AppType")[0].value="Center Attendance"
                $(this).find(".A_leg")[0].value=$(this).find(".org_A_lag")[0].value;
                $(this).find(".B_leg")[0].value="490078";
            })
            this.innerText="External";
            isExternal=false;
            noteType=0
        }
        

    })

    $(".popOutCode").click(function(e){
        /*
        $("body").prepend(`<div id="pastedButtonDiv"><button id="pastedCode" class="btn btn-success">pastedCode</button></div>`)
        $("#pastedCode").css("z-index",999999)
        */
        $(".btn-block")[0].click()
        let createPastedCode = setInterval(function(){
            if($("#note_input").length>0){
                clearInterval(createPastedCode);
                $("#note_input").val(attxCode);
            }
        },1000)
        console.log(attxCode)
    })

    $("#Medication").click(function(e){
        if(this.innerText==="Medication"){
            $(".each_prt").each(function(){
                $(this).find(".AppType")[0].value="Medication";
                $(this).find(".B_leg")[0].value="490078";
                $(this).find(".A_leg")[0].value=$(this).find(".org_A_lag")[0].value;
                $(this).find(".endTime")[0].value="15:29"
                $(this).find(".prtNote")[0].value=80
            })
            this.innerText="Attendance"
            isExternal=true;
            noteType=2
        }else{
            $(".each_prt").each(function(){
                $(this).find(".AppType")[0].value="Center Attendance"
                $(this).find(".A_leg")[0].value=$(this).find(".org_A_lag")[0].value;
                $(this).find(".B_leg")[0].value="490078";
                $(this).find(".endTime")[0].value="15:30"
                $(this).find(".prtNote")[0].value=""
            })
            this.innerText="Medication";
            isExternal=false;
            noteType=0
        }
        

    })

    $("#Acupuncture").click(function(){
        document.getElementById("External").click();
        $(".B_leg").val("176624");
        $(".beginTime").val("1100");
        $(".endTime").val("1300");
        $(".AppType").val("Acupuncture");
        $(".prtNote").val(" KOKO ");
        //isExternal=true;
        //noteType=0
    })

    // Function

    function buildPrtList(prtId){
        let tempALeg=[
            /*prtId*/				prtId,
            /*pickUpTime*/			"",
            /*dropOffTime*/			$(`#${prtId}_Begin_Time`).val(),
            /*aLegLocId*/			$(`#${prtId}_A_leg_id`).val(),
            /*bLegLocId*/			$(`#${prtId}_B_leg_id`).val(),
            /*appt_type*/			$(`#${prtId}_appt_type`).val()
        ];
        let tempBLeg=[
            /*prtId*/				prtId,
            /*pickUpTime*/			$(`#${prtId}_End_Time`).val(),
            /*dropOffTime*/			"",
            /*aLegLocId*/			$(`#${prtId}_B_leg_id`).val(),
            /*bLegLocId*/			$(`#${prtId}_A_leg_id`).val(),
            /*appt_type*/			$(`#${prtId}_appt_type`).val()
        ];
        //alert($("#External").innerText)
        if(noteType==1){
            tempALeg.push(
            /*note*/				$(`#${prtId}_note`).val()
            )
            tempBLeg.push(
            /*note*/				$(`#${prtId}_note`).val()
            )
        }else if(noteType==2){

            tempALeg.push(
            /*note*/				"80"
            )
            tempBLeg.push(
            /*note*/				"80"
            )
        }else{
            tempALeg.push("")
            tempBLeg.push("")
        }

        let returnStrAM=$("#"+prtId+"_am").is(":checked")?tempALeg.join('\t')+"\n":"";
        let returnStrPM=$("#"+prtId+"_pm").is(":checked")?tempBLeg.join('\t'):"";


        return noteType==2?tempBLeg.join('\t'):(returnStrAM+returnStrPM)
    }



});