From: drizea Date: Sat, 7 Jul 2012 07:11:29 +0000 (+0300) Subject: place hold finished for T holds X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=91dc0959e7fa4e950c754d147a8aa128e26b968e;p=working%2FEvergreen.git place hold finished for T holds --- diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java index cbd6ec3655..5c4f05268c 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/AccountAccess.java @@ -818,7 +818,7 @@ public class AccountAccess { return response; } - public Object createHold(Integer recordID, Integer pickup_lib, boolean email_notify, boolean phone_notify, String phone, boolean suspendHold, String expire_time,String thaw_date){ + public String[] createHold(Integer recordID, Integer pickup_lib, boolean email_notify, boolean phone_notify, String phone, boolean suspendHold, String expire_time,String thaw_date){ OSRFObject ahr = new OSRFObject("ahr"); ahr.put("target", recordID); @@ -826,23 +826,46 @@ public class AccountAccess { ahr.put("requestor", userID); //TODO - //do not set hold type, the systems knows the hold type - ahr.put("hold_type", null); + //only gold type 'T' for now + ahr.put("hold_type", "T"); ahr.put("pickup_lib", pickup_lib); //pick-up lib - //ahr.put("phone_notify", phone); - //ahr.put("email_notify", email_notify); - //ahr.put("expire_time",expire_time); + ahr.put("phone_notify", phone); + ahr.put("email_notify", email_notify); + ahr.put("expire_time",expire_time); //frozen set, what this means ? ahr.put("frozen", suspendHold); //only if it is frozen - //ahr.put("thaw_date",thaw_date); + ahr.put("thaw_date",thaw_date); //extra parameters (not mandatory for hold creation) Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_CREATE_HOLD, new Object[]{authToken,ahr}); - return response; + String[] resp = new String[3]; + //if we can get hold ID then we return true + try{ + + List list= (List)response; + if(list.get(0)>-1) + resp[0] = "true"; + + + }catch(Exception e){ + + List respErrorMessage = (List) response; + + Object map = respErrorMessage.get(0); + resp[0]="false"; + + resp[1] = ((Map)map).get("textcode"); + resp[2] = ((Map)map).get("desc"); + }; + + System.out.println("Result " + resp[1] + " " + resp[2]); + + //else we return false + return resp; } // ?? return boolean public Object isHoldPossible(Integer pickup_lib,Integer recordID){ diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java index 86d9333ca0..df4e77f18b 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java @@ -11,6 +11,9 @@ import org.evergreen.android.searchCatalog.RecordInfo; import android.app.Activity; import android.app.DatePickerDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.graphics.Color; import android.os.Bundle; import android.text.format.DateFormat; import android.view.View; @@ -26,6 +29,7 @@ import android.widget.DatePicker; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; +import android.widget.Toast; public class PlaceHold extends Activity{ @@ -68,9 +72,15 @@ public class PlaceHold extends Activity{ private Date thaw_date = null; + private Runnable placeHoldRunnable; + private GlobalConfigs globalConfigs = null; private int selectedOrgPos = 0; + + private ProgressDialog progressDialog; + + private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -79,6 +89,8 @@ public class PlaceHold extends Activity{ globalConfigs = GlobalConfigs.getGlobalConfigs(this); RecordInfo record = (RecordInfo) getIntent().getSerializableExtra("recordInfo"); + context = this; + accountAccess = AccountAccess.getAccountAccess(); recipient = (TextView) findViewById(R.id.hold_recipient); @@ -115,9 +127,17 @@ public class PlaceHold extends Activity{ final Integer record_id = record.doc_id; - placeHold.setOnClickListener(new OnClickListener() { + placeHoldRunnable = new Runnable() { + @Override - public void onClick(View v) { + public void run() { + + runOnUiThread(new Runnable() { + @Override + public void run() { + progressDialog = ProgressDialog.show(context, "Please wait", "Placing hold"); + } + }); accountAccess.getHoldPreCreateInfo(record_id, 4); accountAccess.isHoldPossible(4, record_id); @@ -134,7 +154,33 @@ public class PlaceHold extends Activity{ int selectedOrgID = -1; if(globalConfigs.organisations.size() > selectedOrgPos) selectedOrgID = globalConfigs.organisations.get(selectedOrgPos).id; - accountAccess.createHold(record_id,selectedOrgID,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s); + + final String[] holdPlaced = accountAccess.createHold(record_id,selectedOrgID,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s); + + runOnUiThread(new Runnable() { + @Override + public void run() { + progressDialog.dismiss(); + + if(holdPlaced[0].equals("true")){ + Toast.makeText(context, "Hold Succesfully placed", Toast.LENGTH_LONG).show(); + finish(); + } + else + Toast.makeText(context, "Error in placing hold : " + holdPlaced[2], Toast.LENGTH_LONG).show(); + + + } + }); + } + }; + + placeHold.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + + Thread placeholdThread = new Thread(placeHoldRunnable); + placeholdThread.start(); } }); @@ -237,16 +283,21 @@ public class PlaceHold extends Activity{ } }); } - public void disableView(View view){ //view.setFocusable(false); + view.setFocusable(false); - view.setVisibility(View.INVISIBLE); + view.setBackgroundColor(Color.argb(255, 100, 100, 100)); + //view.setVisibility(View.INVISIBLE); } public void enableView(View view){ - view.setVisibility(View.VISIBLE); + //view.setVisibility(View.VISIBLE); + + view.setFocusableInTouchMode(true); + + view.setBackgroundColor(Color.argb(255, 255,255,255)); } }