From: drizea Date: Thu, 5 Jul 2012 11:35:22 +0000 (+0300) Subject: Hold creation almoast finished X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1f772c9f95954b72490377c9b53399e82b9592ac;p=working%2FEvergreen.git Hold creation almoast finished --- diff --git a/Open-ILS/src/Android/bin/EvergreenApp.apk b/Open-ILS/src/Android/bin/EvergreenApp.apk index 05a6773d06..2fc67114e4 100644 Binary files a/Open-ILS/src/Android/bin/EvergreenApp.apk and b/Open-ILS/src/Android/bin/EvergreenApp.apk differ diff --git a/Open-ILS/src/Android/bin/classes.dex b/Open-ILS/src/Android/bin/classes.dex index 5f144cc1d7..3f44d14469 100644 Binary files a/Open-ILS/src/Android/bin/classes.dex and b/Open-ILS/src/Android/bin/classes.dex differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class index b459ca303a..1df1557888 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$id.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.class index a938784652..026ddf8ef5 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$layout.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class index 145be77d64..2e854693a5 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$string.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class index b963ca2816..05641cd96c 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/R$style.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class index fa65a99142..de535e08d6 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/accountAccess/AccountAccess.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class index 6511d14b91..5913d4a0b3 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/globals/GlobalConfigs.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/Organisation.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/Organisation.class index 191edab49e..29d870df6f 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/Organisation.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/Organisation.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class index 6681477b45..04d288ff34 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Info.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class index ba6382c795..eb7a51ee32 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/RecordDetails_Simple.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class index f05a7e9c5c..795fe1d0e4 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView$SearchArrayAdapter.class differ diff --git a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class index 5bc9b24ff8..9a0a685a8a 100644 Binary files a/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class and b/Open-ILS/src/Android/bin/classes/org/evergreen/android/searchCatalog/SearchCatalogListView.class differ diff --git a/Open-ILS/src/Android/bin/resources.ap_ b/Open-ILS/src/Android/bin/resources.ap_ index 94de6ddf28..f5588e20a0 100644 Binary files a/Open-ILS/src/Android/bin/resources.ap_ and b/Open-ILS/src/Android/bin/resources.ap_ differ diff --git a/Open-ILS/src/Android/gen/org/evergreen/android/R.java b/Open-ILS/src/Android/gen/org/evergreen/android/R.java index af24a925d0..2458fb71a3 100644 --- a/Open-ILS/src/Android/gen/org/evergreen/android/R.java +++ b/Open-ILS/src/Android/gen/org/evergreen/android/R.java @@ -61,7 +61,7 @@ public final class R { public static final int checkout_record_author=0x7f090003; public static final int checkout_record_title=0x7f090002; public static final int checkout_renewals_remaining=0x7f090004; - public static final int chose_organisation=0x7f090035; + public static final int chose_organisation=0x7f090036; public static final int header=0x7f09000e; public static final int header_title=0x7f09000f; public static final int hold_author=0x7f090016; @@ -74,6 +74,7 @@ public final class R { public static final int hold_recipient=0x7f090014; public static final int hold_status=0x7f090020; public static final int hold_suspend_hold=0x7f09001d; + public static final int hold_thaw_date=0x7f090023; public static final int hold_title=0x7f090015; public static final int holds_item_list=0x7f09001f; public static final int holds_number=0x7f09001e; @@ -81,26 +82,26 @@ public final class R { public static final int main_btn_app_settings=0x7f09000d; public static final int main_btn_search=0x7f09000b; public static final int place_hold=0x7f090022; - public static final int record_details_info_author=0x7f090024; - public static final int record_details_info_publisher=0x7f090025; - public static final int record_details_info_title=0x7f090023; - public static final int record_details_simple_author=0x7f090027; - public static final int record_details_simple_isbn=0x7f09002c; - public static final int record_details_simple_publisher=0x7f090028; - public static final int record_details_simple_series=0x7f09002a; - public static final int record_details_simple_subject=0x7f090029; - public static final int record_details_simple_synopsis=0x7f09002b; - public static final int record_details_simple_title=0x7f090026; + public static final int record_details_info_author=0x7f090025; + public static final int record_details_info_publisher=0x7f090026; + public static final int record_details_info_title=0x7f090024; + public static final int record_details_simple_author=0x7f090028; + public static final int record_details_simple_isbn=0x7f09002d; + public static final int record_details_simple_publisher=0x7f090029; + public static final int record_details_simple_series=0x7f09002b; + public static final int record_details_simple_subject=0x7f09002a; + public static final int record_details_simple_synopsis=0x7f09002c; + public static final int record_details_simple_title=0x7f090027; public static final int renew_button=0x7f090006; - public static final int searchButton=0x7f090033; - public static final int searchText=0x7f090032; - public static final int search_more_items_button=0x7f09002d; - public static final int search_record_author=0x7f090030; - public static final int search_record_img=0x7f09002e; - public static final int search_record_publishing=0x7f090031; - public static final int search_record_title=0x7f09002f; + public static final int searchButton=0x7f090034; + public static final int searchText=0x7f090033; + public static final int search_more_items_button=0x7f09002e; + public static final int search_record_author=0x7f090031; + public static final int search_record_img=0x7f09002f; + public static final int search_record_publishing=0x7f090032; + public static final int search_record_title=0x7f090030; public static final int search_result_number=0x7f090000; - public static final int search_results_list=0x7f090034; + public static final int search_results_list=0x7f090035; public static final int update_hold_button=0x7f090013; } public static final class layout { @@ -141,6 +142,7 @@ public final class R { public static final int renew_button=0x7f07000a; public static final int search_result_text=0x7f070009; public static final int suspend_hold=0x7f070015; + public static final int thaw_date=0x7f07001c; public static final int title=0x7f07000c; public static final int title_application_settings=0x7f070004; public static final int title_book_bags=0x7f070008; diff --git a/Open-ILS/src/Android/res/layout/place_hold.xml b/Open-ILS/src/Android/res/layout/place_hold.xml index 22f196ed1d..800816ab79 100644 --- a/Open-ILS/src/Android/res/layout/place_hold.xml +++ b/Open-ILS/src/Android/res/layout/place_hold.xml @@ -153,7 +153,7 @@ android:text="@string/contact_telephone" /> - - + + + + + + + diff --git a/Open-ILS/src/Android/res/values/strings.xml b/Open-ILS/src/Android/res/values/strings.xml index 7835ade839..13f524de98 100644 --- a/Open-ILS/src/Android/res/values/strings.xml +++ b/Open-ILS/src/Android/res/values/strings.xml @@ -23,7 +23,7 @@ Contact tel Phone notification Contact email address - + Email notification Pickup location Expiration Date Suspend Hold @@ -33,5 +33,5 @@ Back Update Hold Are you sure you want to cancel this hold? - + Automatically activate hold one \ No newline at end of file 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 03c3b62203..15e05fa22d 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 @@ -166,7 +166,7 @@ public class AccountAccess { * @param : authtoken, ahr OSRFObject * @returns : hash with messages : "success" : 1 field or */ - public static String METHOD_CREATE_HOLD = " open-ils.circ.holds.create"; + public static String METHOD_CREATE_HOLD = "open-ils.circ.holds.create"; //Used for Fines @@ -817,19 +817,26 @@ public class AccountAccess { return response; } - public Object createHold(Integer recordID){ + public Object 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); ahr.put("usr", userID); ahr.put("requestor", userID); - ahr.put("hold_type", "T"); - ahr.put("pickup_lib", 4); - ahr.put("selection_ou",8); - //selection_ou from where it was selected - //pick_up lib - //type + //do not set hold type, the systems knows the hold type + //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); + //frozen set, what this means ? + ahr.put("frozen", suspendHold); + //only if it is frozen + 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}); 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 dfad352647..11eb9c954a 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 @@ -1,21 +1,29 @@ package org.evergreen.android.accountAccess.holds; import java.util.Calendar; +import java.util.Date; import org.evergreen.android.R; import org.evergreen.android.accountAccess.AccountAccess; +import org.evergreen.android.globals.GlobalConfigs; import org.evergreen.android.searchCatalog.RecordInfo; import android.app.Activity; import android.app.DatePickerDialog; import android.os.Bundle; import android.text.format.DateFormat; -import android.text.format.Time; import android.view.View; import android.view.View.OnClickListener; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemSelectedListener; +import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.DatePicker; import android.widget.EditText; +import android.widget.Spinner; import android.widget.TextView; public class PlaceHold extends Activity{ @@ -35,12 +43,30 @@ public class PlaceHold extends Activity{ private EditText expiration_date; + private EditText phone_number; + + private CheckBox phone_notification; + + private CheckBox email_notification; + private Button placeHold; private Button cancel; + private CheckBox suspendHold; + + private Spinner orgSelector; + private DatePickerDialog datePicker = null; + private DatePickerDialog thaw_datePicker = null; + + private EditText thaw_date_edittext; + + private Date expire_date = null; + + private Date thaw_date = null; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -59,15 +85,22 @@ public class PlaceHold extends Activity{ cancel = (Button) findViewById(R.id.cancel_hold); placeHold = (Button) findViewById(R.id.place_hold); expiration_date = (EditText) findViewById(R.id.hold_expiration_date); - + phone_notification = (CheckBox) findViewById(R.id.hold_enable_phone_notification); + phone_number= (EditText) findViewById(R.id.hold_contact_telephone); + email_notification = (CheckBox) findViewById(R.id.hold_enable_email_notification); + suspendHold = (CheckBox) findViewById(R.id.hold_suspend_hold); + orgSelector = (Spinner) findViewById(R.id.hold_pickup_location); + thaw_date_edittext = (EditText) findViewById(R.id.hold_thaw_date); screen_title.setText("Place Hold"); recipient.setText(accountAccess.userName); title.setText(record.title); author.setText(record.author); physical_description.setText(record.physical_description); - - System.out.println(record.title + " " + record.author); + + //hide edit text + disableView(thaw_date_edittext); + disableView(phone_number); cancel.setOnClickListener(new OnClickListener() { @Override @@ -82,25 +115,63 @@ public class PlaceHold extends Activity{ @Override public void onClick(View v) { - //accountAccess.createHold(record_id); + accountAccess.getHoldPreCreateInfo(record_id, 4); + accountAccess.isHoldPossible(4, record_id); + + String expire_date_s = null; + String thaw_date_s = null; + if(expire_date != null) + expire_date_s = GlobalConfigs.getStringDate(expire_date); + if(thaw_date != null) + thaw_date_s = GlobalConfigs.getStringDate(thaw_date); + + accountAccess.createHold(record_id,4,email_notification.isChecked(),phone_notification.isChecked(),phone_number.getText().toString(),suspendHold.isChecked(),expire_date_s,thaw_date_s); } }); + phone_notification.setOnCheckedChangeListener(new OnCheckedChangeListener() { + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + if(isChecked){ + enableView(phone_number); + } + else + disableView(phone_number); + } + }); + + suspendHold.setOnCheckedChangeListener(new OnCheckedChangeListener() { + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + if(isChecked){ + enableView(thaw_date_edittext); + }else + { + disableView(thaw_date_edittext); + } + } + }); Calendar cal = Calendar.getInstance(); + datePicker = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { - Time chosenDate = new Time(); - chosenDate.set(dayOfMonth, monthOfYear, year); - long dtDob = chosenDate.toMillis(true); - CharSequence strDate = DateFormat.format("MMMM dd, yyyy", dtDob); + + + Date chosenDate = new Date(year, monthOfYear,dayOfMonth); + expire_date = chosenDate; + CharSequence strDate = DateFormat.format("MMMM dd, yyyy", chosenDate); expiration_date.setText(strDate); //set current date }}, cal.get(Calendar.YEAR),cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); @@ -112,6 +183,54 @@ public class PlaceHold extends Activity{ } }); + thaw_datePicker = new DatePickerDialog(this, + new DatePickerDialog.OnDateSetListener() { + + public void onDateSet(DatePicker view, int year, + int monthOfYear, int dayOfMonth) + { + + + Date chosenDate = new Date(year, monthOfYear,dayOfMonth); + thaw_date = chosenDate; + CharSequence strDate = DateFormat.format("MMMM dd, yyyy", chosenDate); + expiration_date.setText(strDate); + //set current date + }}, cal.get(Calendar.YEAR),cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); + + thaw_date_edittext.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + thaw_datePicker.show(); + } + }); + + + ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,list); + orgSelector.setAdapter(adapter); + + orgSelector.setSelection(); + + orgSelectorn.setOnItemSelectedListener(new OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView arg0, View arg1, + int ID, long arg3) { + //select the specific organization + search.selectOrganisation(globalConfigs.organisations.get(ID)); + + } + } + + public void disableView(View view){ + + //view.setFocusable(false); + + view.setVisibility(View.INVISIBLE); + } + + public void enableView(View view){ + view.setVisibility(View.VISIBLE); } } diff --git a/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java b/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java index c3b88b29d2..8fe52100a9 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/globals/GlobalConfigs.java @@ -97,6 +97,9 @@ public class GlobalConfigs { AccountAccess ac = AccountAccess.getAccountAccess(GlobalConfigs.httpAddress); ac.authenticate(); + //TODO getorg hidding levels + //getOrgHiddentDepth(); + return true; } return false; @@ -262,6 +265,32 @@ public class GlobalConfigs { loadedOrgTree = true; } } + + public void getOrgHiddentDepth(){ + + // logic can be found in the opac_utils.js file in web/opac/common/js + + + for(int i=0; i