mirror of
https://github.com/sismics/docs.git
synced 2024-11-22 14:07:55 +01:00
Refactor, TODO
This commit is contained in:
parent
52387d93ac
commit
25136bc146
@ -71,17 +71,22 @@ public class DocumentViewActivity extends AppCompatActivity {
|
||||
/**
|
||||
* File view pager.
|
||||
*/
|
||||
ViewPager fileViewPager;
|
||||
private ViewPager fileViewPager;
|
||||
|
||||
/**
|
||||
* File pager adapter.
|
||||
*/
|
||||
FilePagerAdapter filePagerAdapter;
|
||||
private FilePagerAdapter filePagerAdapter;
|
||||
|
||||
/**
|
||||
* Document displayed.
|
||||
*/
|
||||
JSONObject document;
|
||||
private JSONObject document;
|
||||
|
||||
/**
|
||||
* Menu.
|
||||
*/
|
||||
private Menu menu;
|
||||
|
||||
@Override
|
||||
protected void onCreate(final Bundle args) {
|
||||
@ -181,29 +186,16 @@ public class DocumentViewActivity extends AppCompatActivity {
|
||||
|
||||
// Grab the attached files
|
||||
updateFiles();
|
||||
|
||||
// Grab the full document (used for ACLs and writable status)
|
||||
updateDocument();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(final Menu menu) {
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.document_view_activity, menu);
|
||||
|
||||
// Silently get the document to know if it is writable by the current user
|
||||
// If this call fails or is slow and the document is read-only,
|
||||
// write actions will be allowed and will fail
|
||||
DocumentResource.get(this, document.optString("id"), new JsonHttpResponseHandler() {
|
||||
@Override
|
||||
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
|
||||
boolean writable = response.optBoolean("writable");
|
||||
|
||||
menu.findItem(R.id.share).setVisible(writable);
|
||||
menu.findItem(R.id.upload_file).setVisible(writable);
|
||||
menu.findItem(R.id.edit).setVisible(writable);
|
||||
menu.findItem(R.id.delete_file).setVisible(writable);
|
||||
menu.findItem(R.id.delete_document).setVisible(writable);
|
||||
}
|
||||
});
|
||||
|
||||
this.menu = menu;
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@ -510,6 +502,33 @@ public class DocumentViewActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the document model.
|
||||
*/
|
||||
private void updateDocument() {
|
||||
if (document == null) return;
|
||||
|
||||
// Silently get the document to know if it is writable by the current user
|
||||
// If this call fails or is slow and the document is read-only,
|
||||
// write actions will be allowed and will fail
|
||||
DocumentResource.get(this, document.optString("id"), new JsonHttpResponseHandler() {
|
||||
@Override
|
||||
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
|
||||
boolean writable = response.optBoolean("writable");
|
||||
|
||||
if (menu != null) {
|
||||
menu.findItem(R.id.share).setVisible(writable);
|
||||
menu.findItem(R.id.upload_file).setVisible(writable);
|
||||
menu.findItem(R.id.edit).setVisible(writable);
|
||||
menu.findItem(R.id.delete_file).setVisible(writable);
|
||||
menu.findItem(R.id.delete_document).setVisible(writable);
|
||||
}
|
||||
|
||||
// TODO Show the ACLs in a sliding panel from the right
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh files list.
|
||||
*/
|
||||
|
@ -103,7 +103,7 @@ public class DocumentResource extends BaseResource {
|
||||
document.put("description", documentDb.getDescription());
|
||||
document.put("create_date", documentDb.getCreateDate().getTime());
|
||||
document.put("language", documentDb.getLanguage());
|
||||
document.put("creator", userDao.getById(documentDb.getUserId()).getUsername());
|
||||
// TODO Add "shared" and "file_count" -> rewrite the query in SQL
|
||||
|
||||
if (principal.isAnonymous()) {
|
||||
// No tags in anonymous mode (sharing)
|
||||
@ -123,6 +123,10 @@ public class DocumentResource extends BaseResource {
|
||||
document.put("tags", tags);
|
||||
}
|
||||
|
||||
// Below is specific to GET /document/id
|
||||
|
||||
document.put("creator", userDao.getById(documentDb.getUserId()).getUsername());
|
||||
|
||||
// Add ACL
|
||||
List<AclDto> aclDtoList = aclDao.getBySourceId(documentId);
|
||||
List<JSONObject> aclList = new ArrayList<>();
|
||||
@ -190,8 +194,8 @@ public class DocumentResource extends BaseResource {
|
||||
document.put("title", documentDto.getTitle());
|
||||
document.put("description", documentDto.getDescription());
|
||||
document.put("create_date", documentDto.getCreateTimestamp());
|
||||
document.put("shared", documentDto.getShared());
|
||||
document.put("language", documentDto.getLanguage());
|
||||
document.put("shared", documentDto.getShared());
|
||||
document.put("file_count", documentDto.getFileCount());
|
||||
|
||||
// Get tags added by the current user on this document
|
||||
|
Loading…
Reference in New Issue
Block a user