Ignore:
Timestamp:
09/22/20 08:52:49 (4 years ago)
Author:
bart
Message:

Version 1.5.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/webapp/newsession.xhtml

    r16 r17  
    44<title>Profiles and Domains list</title>
    55<link rel="stylesheet" type="text/css" href="style.css" />
    6 
    76</head>
    87<body onload="init()">
     
    1413        <br /> Protocol:
    1514        <select id="selectedprotocol" onchange="selectProtocol()">
    16                 <option value="SAOP">SAOP (stacked alternating offers)</option>
    17                 <option value="SHAOP">SHAOP (stacked human alternating
    18                         offers)</option>
     15                <option value="SAOP">SAOP ( Stacked Alternating Offers
     16                        Protocol )</option>
     17                <option value="MOPAC">MOPAC (Multiple Offers Partial
     18                        Consensus)</option>
     19                <option value="AMOP">AMOP (Alternating Multiple Offers
     20                        Protocol)</option>
     21                <option value="SHAOP">SHAOP (Stacked Human Alternating Offers
     22                        Protocol)</option>
    1923        </select>
    2024
     25        <div id="votingevaluator">
     26                <br /> Voting Evaluator: <select id="selectedevaluator">
     27                        <option value="LargestAgreement">Largest Agreement</option>
     28                        <option value="LargestAgreementsLoop">Largest Agreements and Repeat</option>
     29                </select>
     30        </div>
     31       
    2132        <br /> Deadline:
    2233        <input type="number" id="deadlinevalue" name="deadline" min="1"
     
    2940        <br /> Domain/Profile Server:
    3041        <input type="url" name="url" id="profilesserverurl"
    31                 value="localhost:8080/profilesserver-1.4.4"
     42                value="localhost:8080/profilesserver-1.5.0"
    3243                pattern=".*:[0-9]+/profilesserver" size="30"
    3344                onchange="connectDomain()"> </input>
     
    4354                <br /> <b>Participants</b> <br /> Parties Server: <input type="url"
    4455                        name="url" id="partiesserverurl"
    45                         value="localhost:8080/partiesserver-1.4.4"
     56                        value="localhost:8080/partiesserver-1.5.0"
    4657                        pattern=".*:[0-9]+/partiesserver" size="30"
    4758                        onchange="connectParties()"> </input> <br /> <br /> <b>Party
     
    6374                                <input type="text" id="cobfilter" value="" maxlength="40" /> <br />
    6475                                <!--  -->
    65                                 Parameters: { <textarea  id="cobparameters" rows="2" cols="70"
    66                                         onchange="updateCobParameters()" value="" /> } <br />
    67                                 <br />
     76                                Parameters: {
     77                                <textarea id="cobparameters" rows="2" cols="70"
     78                                        onchange="updateCobParameters()" value="" />
     79                                } <br /> <br />
    6880                        </div>
    6981                </div>
     
    115127
    116128<script type="application/javascript">
     129       
     130       
    117131       
    118132       
     
    186200            tbl.getElementsByTagName('col')[4].style.visibility=(visible?'':'collapse');
    187201            tbl.getElementsByTagName('col')[5].style.visibility=(visible?'':'collapse');
     202           
     203        var evaluatorvisible=getSelectedProtocol() == "MOPAC";
     204        document.getElementById("votingevaluator").style.display=(evaluatorvisible ? 'block': 'none');
    188205               
    189206    }   
     
    198215                domainwebsocket=null;
    199216        }
    200                 var url=document.getElementById("profilesserverurl").value;
    201         var target = "ws://"+url+"/websocket/liststream";
     217                var url=new URL("http:"+document.getElementById("profilesserverurl").value);
     218                // insert the liststream to the path
     219        var target = "ws://"+url.host+url.pathname+"/websocket/liststream"+window.location.search+url.hash;
    202220        if ('WebSocket' in window) {
    203221                domainwebsocket = new WebSocket(target);
     
    276294         refresh table: copy all parties elements in there.
    277295         Typically parties is something like
    278          [{"uri":"http:130.161.180.1:8080/partiesserver/run/randomparty-1.4.4",
     296         [{"uri":"http:130.161.180.1:8080/partiesserver/run/randomparty-1.5.0",
    279297                 "capabilities":{"protocols":["SAOP"]},
    280298                 "description":"places random bids until it can accept an offer with utility >0.6",
    281                  "id":"randomparty-1.4.4",
     299                 "id":"randomparty-1.5.0",
    282300                 "partyClass":"geniusweb.exampleparties.randomparty.RandomParty"},
    283301                                 ...]
    284302         */
    285303        function updateParties(parties) {
    286                  updatePartiesCombobox(parties, document.getElementById("partyselection"),['SAOP','SHAOP']);
     304                 updatePartiesCombobox(parties, document.getElementById("partyselection"),['SAOP','AMOP','SHAOP']);
    287305                 updatePartiesCombobox(parties, document.getElementById("cobpartyselection"),['COB']);
    288306        }
     
    483501                                var logurl="log/"+this.responseText+".json";
    484502                                document.getElementById("logref").href=logurl;
    485                                 document.getElementById("plotref").href="plotlog.xhtml?id="+this.responseText;
     503                                document.getElementById("plotref").href="plotlog.xhtml"+
     504                                combineQuery("?id="+this.responseText,window.location.search);
    486505                               
    487506                                sometimeWhen(function() { return urlExists(logurl) },
     
    499518
    500519
     520
     521        /**
     522        @param query1 a query string like &p=q (part of URL)
     523        @param query2 another query string
     524        @return the combined querystring of query1 and query2
     525        */
     526        function combineQuery(query1, query2) {
     527                if (query1=="") return query2;
     528                if (query2=="") return query1;
     529                return query1+"&"+query2.substring(1);
     530        }
     531
     532       
    501533        /**
    502534        @return true iff the URL exists.
     
    521553        */
    522554        function makeRequest() {
    523 
    524                 if (getSelectedProtocol()=="SHAOP") {
     555                switch(getSelectedProtocol()) {
     556                case "SHAOP":
    525557                        return makeShaopRequest();
    526                 } else {
    527                         return makeSaopRequest();
     558                case"SAOP":
     559                case "AMOP":
     560                        return makeStdRequest(getSelectedProtocol()+"Settings");
     561                case "MOPAC":
     562                        return makeMopacRequest();                     
    528563                }
    529564        }
    530565       
    531566        /**
    532         @return a SAOP request
    533         */
    534         function makeSaopRequest() {
     567        @return a SAOP/AMOP request
     568        The header contains 'SAOSettings' or 'AMOPSettings'
     569        */
     570        function makeStdRequest(header) {
     571                return JSON.stringify({[header]: standardHeader() });
     572        }
     573       
     574        /**
     575        * @ereturn MOPAC request. Almost standard but extra 'votingEvaluator'.
     576        */
     577        function makeMopacRequest() {
     578                var extended = standardHeader();
     579                var combo = document.getElementById("selectedevaluator");
     580                var evaluator = combo.options[combo.selectedIndex].value;
     581                extended['votingevaluator'] = { [evaluator]: {} };
     582                return JSON.stringify({"MOPACSettings": extended });
     583        }
     584       
     585        /**
     586        @return standard header with participants and deadline
     587        */
     588        function standardHeader() {
    535589                var deadline={};
    536590                var value = document.getElementById("deadlinevalue").value;
     
    542596                        deadline["deadlinerounds"] = {"rounds": value, "durationms":10000};
    543597                }
    544                
    545                 return JSON.stringify({"SAOPSettings": { "participants": partyprofiles, "deadline":deadline }});
    546         }
     598                return  { "participants": partyprofiles, "deadline":deadline }
     599        }
     600       
     601       
    547602
    548603        /**
     
    577632        function init() {
    578633                selectProtocol();
    579                 document.getElementById("partiesserverurl").value =window.location.hostname+":8080/partiesserver-1.4.4"
    580                 document.getElementById("profilesserverurl").value =window.location.hostname+":8080/profilesserver-1.4.4"
     634                document.getElementById("partiesserverurl").value =window.location.hostname+":8080/partiesserver-1.5.0"
     635                document.getElementById("profilesserverurl").value =window.location.hostname+":8080/profilesserver-1.5.0"
    581636                connectDomain();
    582637                connectParties();
     
    592647
    593648
     649
     650
    594651</script>
    595652
Note: See TracChangeset for help on using the changeset viewer.