Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
A
ALand
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张杰
ALand
Commits
3bd50962
Commit
3bd50962
authored
Jul 22, 2016
by
Sandy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
删除多余界面,封装
parent
51667527
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
127 additions
and
163 deletions
+127
-163
project.pbxproj
ALand.xcodeproj/project.pbxproj
+12
-12
SeeLogistics.xib
ALand/CodeClass/Home/View/Order/SeeLogistics.xib
+1
-1
HomeCollectionViewController.m
...eClass/Home/ViewController/HomeCollectionViewController.m
+5
-3
NoPaymentTableViewController.m
.../Home/ViewController/Order/NoPaymentTableViewController.m
+11
-31
OrderDetailViewController.m
...ass/Home/ViewController/Order/OrderDetailViewController.m
+6
-3
OrderPayViewController.h
...eClass/Home/ViewController/Order/OrderPayViewController.h
+0
-17
OrderPayViewController.m
...eClass/Home/ViewController/Order/OrderPayViewController.m
+0
-85
WebViewController.h
ALand/CodeClass/Home/WebViewController.h
+14
-0
WebViewController.m
ALand/CodeClass/Home/WebViewController.m
+8
-11
QueryParamsTools.h
ALand/Global/QueryParamsTools.h
+16
-0
QueryParamsTools.m
ALand/Global/QueryParamsTools.m
+54
-0
No files found.
ALand.xcodeproj/project.pbxproj
View file @
3bd50962
This diff is collapsed.
Click to expand it.
ALand/CodeClass/Home/View/Order/SeeLogistics.xib
View file @
3bd50962
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<constraint
firstAttribute=
"height"
constant=
"44"
id=
"saD-TZ-a7b"
/>
<constraint
firstAttribute=
"height"
constant=
"44"
id=
"saD-TZ-a7b"
/>
</constraints>
</constraints>
<fontDescription
key=
"fontDescription"
type=
"system"
pointSize=
"22"
/>
<fontDescription
key=
"fontDescription"
type=
"system"
pointSize=
"22"
/>
<state
key=
"normal"
title=
"去
支付
"
backgroundImage=
"logistics_btn"
>
<state
key=
"normal"
title=
"去
付款
"
backgroundImage=
"logistics_btn"
>
<color
key=
"titleColor"
red=
"0.48627450979999998"
green=
"0.76470588240000004"
blue=
"0.1450980392"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<color
key=
"titleColor"
red=
"0.48627450979999998"
green=
"0.76470588240000004"
blue=
"0.1450980392"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
</state>
</state>
</button>
</button>
...
...
ALand/CodeClass/Home/ViewController/HomeCollectionViewController.m
View file @
3bd50962
...
@@ -22,8 +22,7 @@
...
@@ -22,8 +22,7 @@
#import "JavencommissionAccountModel.h"
#import "JavencommissionAccountModel.h"
#import "MyAcountViewController.h"
#import "MyAcountViewController.h"
#import "HomeCollectionFooterReusableView.h"
#import "HomeCollectionFooterReusableView.h"
#import "ShopWebViewController.h"
#import "WebViewController.h"
#define kHomeCollectionViewID @"HomeCollectionViewID"
#define kHomeCollectionViewID @"HomeCollectionViewID"
#define kCollectionViewHeadHeight 230
#define kCollectionViewHeadHeight 230
...
@@ -237,8 +236,11 @@
...
@@ -237,8 +236,11 @@
break
;
break
;
case
6
:
//课堂
case
6
:
//课堂
{
{
ShopWebViewController
*
shopVC
=
[[
ShopWebViewController
alloc
]
init
];
WebViewController
*
shopVC
=
[[
WebViewController
alloc
]
init
];
UserInfo
*
userInfo
=
[
UserInfo
shareInstance
];
NSString
*
inviteWebUrl
=
[
NSString
stringWithFormat
:
@"%@Wap/index_shop/shop_id/%@/mobile/%@.html"
,
userInfo
.
appConfig
.
webShopBaseUrl
,
userInfo
.
reseller
.
shop
.
uuid
,
userInfo
.
reseller
.
mobilephone
];
shopVC
.
isShowNavigationBar
=
YES
;
shopVC
.
isShowNavigationBar
=
YES
;
shopVC
.
URL
=
inviteWebUrl
;
shopVC
.
title
=
@"微商城"
;
shopVC
.
title
=
@"微商城"
;
shopVC
.
hidesBottomBarWhenPushed
=
YES
;
shopVC
.
hidesBottomBarWhenPushed
=
YES
;
[
self
.
navigationController
pushViewController
:
shopVC
animated
:
YES
];
[
self
.
navigationController
pushViewController
:
shopVC
animated
:
YES
];
...
...
ALand/CodeClass/Home/ViewController/Order/NoPaymentTableViewController.m
View file @
3bd50962
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
#import "OrderListFooterView.h"
#import "OrderListFooterView.h"
#import "NSString+OrderState.h"
#import "NSString+OrderState.h"
#import "SeeLogistics.h"
#import "SeeLogistics.h"
#import "QueryParamsTools.h"
#define kExpressCell @"OrderExpressTableViewCell.h"
#define kExpressCell @"OrderExpressTableViewCell.h"
#define kCellId @"OrderTableViewCell.h"
#define kCellId @"OrderTableViewCell.h"
#define kPageSize 10
#define kPageSize 10
...
@@ -105,39 +106,18 @@
...
@@ -105,39 +106,18 @@
orderState
=
[
NSNull
null
];
orderState
=
[
NSNull
null
];
}
}
NSDictionary
*
myDictionary
;
QueryParamsTools
*
query
=
[
QueryParamsTools
queryParamsToolWithPage
:
@
(
self
.
page
)
pageSize
:
@
(
kPageSize
)];
if
([
self
.
orderTag
isEqualToString
:
@"待支付"
])
{
[
query
addOrderField
:
@"createInfo.time"
direction
:
@"desc"
];
myDictionary
=
@{
@"defintion"
:
@{
@"conditions"
:
@[@{
@"operation"
:
@"domain equals"
,
[
query
addConditionsOperation
:
@"domain equals"
value
:
kDomain
];
@"parameters"
:
@[
kDomain
]},
[
query
addConditionsOperation
:
@"reseller uuid equals"
value
:[
UserInfo
shareInstance
].
reseller
.
uuid
];
@{
@"operation"
:
@"reseller uuid equals"
,
[
query
addConditionsOperation
:
@"order state equals"
value
:
orderState
];
@"parameters"
:
@[[
UserInfo
shareInstance
].
reseller
.
uuid
]},
if
([
self
.
orderTag
isEqualToString
:
@"待支付"
]){
@{
@"operation"
:
@"my unpay order"
,
[
query
addConditionsOperation
:
@"consumer uuid equals"
value
:[
UserInfo
shareInstance
].
consumer
.
uuid
];
@"parameters"
:
@[[
UserInfo
shareInstance
].
consumer
.
uuid
]},
}
else
if
([
self
.
orderTag
isEqualToString
:
@"全部订单"
]){
@{
@"operation"
:
@"order state equals"
,
[
query
addConditionsOperation
:
@"my unpay order"
value
:[
UserInfo
shareInstance
].
consumer
.
uuid
];
@"parameters"
:
@[
orderState
]}],
@"orders"
:
@[@{
@"field"
:
@"createInfo.time"
,
@"direction"
:
@"desc"
}],
@"pageSize"
:
@
(
kPageSize
),
@"page"
:
@
(
self
.
page
),
@"probePages"
:
@0
},
@"fetchParts"
:
@[
@"string"
]};
}
else
{
myDictionary
=
@{
@"defintion"
:
@{
@"conditions"
:
@[@{
@"operation"
:
@"domain equals"
,
@"parameters"
:
@[
kDomain
]},
@{
@"operation"
:
@"reseller uuid equals"
,
@"parameters"
:
@[[
UserInfo
shareInstance
].
reseller
.
uuid
]},
@{
@"operation"
:
@"order state equals"
,
@"parameters"
:
@[
orderState
]}],
@"orders"
:
@[@{
@"field"
:
@"createInfo.time"
,
@"direction"
:
@"desc"
}],
@"pageSize"
:
@
(
kPageSize
),
@"page"
:
@
(
self
.
page
),
@"probePages"
:
@0
},
@"fetchParts"
:
@[
@"string"
]};
}
}
return
myDictionary
;
return
query
.
params
;
}
}
...
...
ALand/CodeClass/Home/ViewController/Order/OrderDetailViewController.m
View file @
3bd50962
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
#import "OrderDetailBottomView.h"
#import "OrderDetailBottomView.h"
#import "CommodityDetailViewController.h"
#import "CommodityDetailViewController.h"
#import "CommodityListModel/CommotityListModel.h"
#import "CommodityListModel/CommotityListModel.h"
#import "
OrderPay
ViewController.h"
#import "
Web
ViewController.h"
#define kCellId @"OrderDetailTableViewCell.h"
#define kCellId @"OrderDetailTableViewCell.h"
@interface
OrderDetailViewController
()
<
UITableViewDelegate
,
UITableViewDataSource
>
@interface
OrderDetailViewController
()
<
UITableViewDelegate
,
UITableViewDataSource
>
@property
(
nonatomic
,
strong
)
UITableView
*
tableView
;
@property
(
nonatomic
,
strong
)
UITableView
*
tableView
;
...
@@ -66,8 +66,11 @@
...
@@ -66,8 +66,11 @@
}
}
-
(
void
)
actionPay
{
-
(
void
)
actionPay
{
OrderPayViewController
*
payVC
=
[[
OrderPayViewController
alloc
]
init
];
WebViewController
*
payVC
=
[[
WebViewController
alloc
]
init
];
payVC
.
model
=
self
.
model
;
UserInfo
*
user
=
[
UserInfo
shareInstance
];
NSString
*
url
=
[
NSString
stringWithFormat
:
@"%@Wap/orderDetail/id/%@/shop_id/%@/mobile/%@.html"
,
user
.
appConfig
.
webShopBaseUrl
,
self
.
model
.
billNumber
,
self
.
model
.
shop
.
uuid
,
user
.
reseller
.
mobilephone
];
payVC
.
URL
=
url
;
payVC
.
title
=
@"付款"
;
[
self
.
navigationController
pushViewController
:
payVC
animated
:
YES
];
[
self
.
navigationController
pushViewController
:
payVC
animated
:
YES
];
}
}
...
...
ALand/CodeClass/Home/ViewController/Order/OrderPayViewController.h
deleted
100644 → 0
View file @
51667527
//
// OrderPayViewController.h
// ALand
//
// Created by Z on 16/7/21.
// Copyright © 2016年 Z. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "IBTUIViewController.h"
#import "JavenOrderModel.h"
@interface
OrderPayViewController
:
IBTUIViewController
@property
(
nonatomic
,
strong
)
JavenOrderModel
*
model
;
@end
ALand/CodeClass/Home/ViewController/Order/OrderPayViewController.m
deleted
100644 → 0
View file @
51667527
//
// OrderPayViewController.m
// ALand
//
// Created by Z on 16/7/21.
// Copyright © 2016年 Z. All rights reserved.
//
#import "OrderPayViewController.h"
#import <WebKit/WebKit.h>
@interface
OrderPayViewController
()
<
WKNavigationDelegate
,
WKUIDelegate
>
@property
(
nonatomic
,
strong
)
WKWebView
*
webView
;
@end
@implementation
OrderPayViewController
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
WKWebView
*
webView
=
[[
WKWebView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
kWidth
,
kHeight
-
64
)];
UserInfo
*
user
=
[
UserInfo
shareInstance
];
NSString
*
url
=
[
NSString
stringWithFormat
:
@"%@Wap/orderDetail/id/%@/shop_id/%@/mobile/%@.html"
,
user
.
appConfig
.
webShopBaseUrl
,
self
.
model
.
billNumber
,
self
.
model
.
shop
.
uuid
,
user
.
reseller
.
mobilephone
];
[
webView
loadRequest
:[
NSURLRequest
requestWithURL
:[
NSURL
URLWithString
:
url
]]];
self
.
webView
=
webView
;
webView
.
navigationDelegate
=
self
;
webView
.
UIDelegate
=
self
;
[
self
.
view
addSubview
:
webView
];
// Do any additional setup after loading the view from its nib.
}
#pragma mark - wkwebview delegate
// 页面开始加载时调用
-
(
void
)
webView
:
(
WKWebView
*
)
webView
didStartProvisionalNavigation
:
(
WKNavigation
*
)
navigation
{
[
MBProgressHUD
showHUDAddedTo
:
self
.
view
animated
:
YES
];
}
-
(
void
)
webView
:
(
WKWebView
*
)
webView
runJavaScriptConfirmPanelWithMessage
:
(
NSString
*
)
message
initiatedByFrame
:
(
WKFrameInfo
*
)
frame
completionHandler
:
(
void
(
^
)(
BOOL
))
completionHandler
{
UIAlertController
*
alertController
=
[
UIAlertController
alertControllerWithTitle
:
message
message
:
nil
preferredStyle
:
UIAlertControllerStyleAlert
];
[
alertController
addAction
:[
UIAlertAction
actionWithTitle
:
@"确定"
style
:
UIAlertActionStyleDefault
handler
:
^
(
UIAlertAction
*
action
)
{
completionHandler
(
YES
);
}]];
[
alertController
addAction
:[
UIAlertAction
actionWithTitle
:
@"取消"
style
:
UIAlertActionStyleCancel
handler
:
^
(
UIAlertAction
*
action
){
completionHandler
(
NO
);
}]];
[
self
presentViewController
:
alertController
animated
:
YES
completion
:^
{}];
}
// 页面加载完成之后调用
-
(
void
)
webView
:
(
WKWebView
*
)
webView
didFinishNavigation
:
(
WKNavigation
*
)
navigation
{
self
.
title
=
webView
.
title
;
[
MBProgressHUD
hideHUDForView
:
self
.
view
];
}
-
(
void
)
didReceiveMemoryWarning
{
[
super
didReceiveMemoryWarning
];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
ALand/CodeClass/Home/
ViewController/Shop
WebViewController.h
→
ALand/CodeClass/Home/WebViewController.h
View file @
3bd50962
//
//
//
Shop
WebViewController.h
// WebViewController.h
// ALand
// ALand
//
//
// Created by Z on 16/
5/13
.
// Created by Z on 16/
7/22
.
// Copyright © 2016年 Z. All rights reserved.
// Copyright © 2016年 Z. All rights reserved.
//
//
#import "IBTUIViewController.h"
#import "IBTUIViewController.h"
@interface
ShopWebViewController
:
IBTUIViewController
@interface
WebViewController
:
IBTUIViewController
@property
(
nonatomic
,
copy
)
NSString
*
URL
;
@end
@end
ALand/CodeClass/Home/
ViewController/Shop
WebViewController.m
→
ALand/CodeClass/Home/WebViewController.m
View file @
3bd50962
//
//
//
Shop
WebViewController.m
// WebViewController.m
// ALand
// ALand
//
//
// Created by Z on 16/
5/13
.
// Created by Z on 16/
7/22
.
// Copyright © 2016年 Z. All rights reserved.
// Copyright © 2016年 Z. All rights reserved.
//
//
#import "
Shop
WebViewController.h"
#import "WebViewController.h"
#import <WebKit/WebKit.h>
#import <WebKit/WebKit.h>
@interface
Shop
WebViewController
()
<
WKNavigationDelegate
,
WKUIDelegate
>
@interface
WebViewController
()
<
WKNavigationDelegate
,
WKUIDelegate
>
@property
(
nonatomic
,
weak
)
WKWebView
*
webView
;
@property
(
nonatomic
,
weak
)
WKWebView
*
webView
;
@property
(
nonatomic
,
weak
)
UIButton
*
backItem
;
@property
(
nonatomic
,
weak
)
UIButton
*
backItem
;
@property
(
nonatomic
,
weak
)
UIButton
*
closeItem
;
@property
(
nonatomic
,
weak
)
UIButton
*
closeItem
;
@end
@end
@implementation
Shop
WebViewController
@implementation
WebViewController
-
(
void
)
viewDidLoad
{
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
[
super
viewDidLoad
];
UserInfo
*
userInfo
=
[
UserInfo
shareInstance
];
NSString
*
inviteWebUrl
=
[
NSString
stringWithFormat
:
@"%@Wap/index_shop/shop_id/%@/mobile/%@.html"
,
userInfo
.
appConfig
.
webShopBaseUrl
,
userInfo
.
reseller
.
shop
.
uuid
,
userInfo
.
reseller
.
mobilephone
];
WKWebView
*
webView
=
[[
WKWebView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
kWidth
,
kHeight
-
64
)];
WKWebView
*
webView
=
[[
WKWebView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
kWidth
,
kHeight
-
64
)];
[
webView
loadRequest
:[
NSURLRequest
requestWithURL
:[
NSURL
URLWithString
:
inviteWebUrl
]]];
[
webView
loadRequest
:[
NSURLRequest
requestWithURL
:[
NSURL
URLWithString
:
self
.
URL
]]];
self
.
webView
=
webView
;
self
.
webView
=
webView
;
webView
.
navigationDelegate
=
self
;
webView
.
navigationDelegate
=
self
;
webView
.
UIDelegate
=
self
;
webView
.
UIDelegate
=
self
;
...
@@ -30,7 +28,6 @@
...
@@ -30,7 +28,6 @@
[
self
initNaviBar
];
[
self
initNaviBar
];
// Do any additional setup after loading the view.
// Do any additional setup after loading the view.
}
}
-
(
void
)
initNaviBar
{
-
(
void
)
initNaviBar
{
UIView
*
backView
=
[[
UIView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
100
,
44
)];
UIView
*
backView
=
[[
UIView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
100
,
44
)];
...
@@ -38,7 +35,7 @@
...
@@ -38,7 +35,7 @@
[
backItem
setImage
:[
UIImage
imageNamed
:
@"bac"
]
forState
:
UIControlStateNormal
];
[
backItem
setImage
:[
UIImage
imageNamed
:
@"bac"
]
forState
:
UIControlStateNormal
];
[
backItem
setImageEdgeInsets
:
UIEdgeInsetsMake
(
0
,
-
15
,
0
,
0
)];
[
backItem
setImageEdgeInsets
:
UIEdgeInsetsMake
(
0
,
-
15
,
0
,
0
)];
[
backItem
setTitle
:
@"返回"
forState
:
UIControlStateNormal
];
[
backItem
setTitle
:
@"返回"
forState
:
UIControlStateNormal
];
// backItem.titleLabel.font = [UIFont systemFontOfSize:17];
// backItem.titleLabel.font = [UIFont systemFontOfSize:17];
[
backItem
setTitleEdgeInsets
:
UIEdgeInsetsMake
(
0
,
-
5
,
0
,
0
)];
[
backItem
setTitleEdgeInsets
:
UIEdgeInsetsMake
(
0
,
-
5
,
0
,
0
)];
[
backItem
setTitleColor
:
kTextColorGray
forState
:
UIControlStateNormal
];
[
backItem
setTitleColor
:
kTextColorGray
forState
:
UIControlStateNormal
];
[
backItem
addTarget
:
self
action
:
@selector
(
clickedBackItem
:
)
forControlEvents
:
UIControlEventTouchUpInside
];
[
backItem
addTarget
:
self
action
:
@selector
(
clickedBackItem
:
)
forControlEvents
:
UIControlEventTouchUpInside
];
...
...
ALand/Global/QueryParamsTools.h
0 → 100644
View file @
3bd50962
//
// QueryParamsTools.h
// ALand
//
// Created by Z on 16/7/22.
// Copyright © 2016年 Z. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface
QueryParamsTools
:
NSObject
@property
(
nonatomic
,
strong
)
NSMutableDictionary
*
params
;
+
(
QueryParamsTools
*
)
queryParamsToolWithPage
:(
NSNumber
*
)
page
pageSize
:(
NSNumber
*
)
pageSize
;
-
(
void
)
addOrderField
:(
NSString
*
)
order
direction
:(
NSString
*
)
direction
;
-
(
void
)
addConditionsOperation
:(
NSString
*
)
condition
value
:(
NSString
*
)
value
;
@end
ALand/Global/QueryParamsTools.m
0 → 100644
View file @
3bd50962
//
// QueryParamsTools.m
// ALand
//
// Created by Z on 16/7/22.
// Copyright © 2016年 Z. All rights reserved.
//
#import "QueryParamsTools.h"
@interface
QueryParamsTools
()
@property
(
nonatomic
,
strong
)
NSMutableDictionary
*
defintion
;
@property
(
nonatomic
,
strong
)
NSMutableArray
*
arrFetchParts
;
@property
(
nonatomic
,
strong
)
NSMutableArray
*
orders
;
@property
(
nonatomic
,
strong
)
NSMutableArray
*
conditions
;
@end
@implementation
QueryParamsTools
+
(
QueryParamsTools
*
)
queryParamsToolWithPage
:(
NSNumber
*
)
page
pageSize
:(
NSNumber
*
)
pageSize
{
QueryParamsTools
*
tools
=
[[
self
alloc
]
initWithWithPage
:
page
pageSize
:
pageSize
];
return
tools
;
}
-
(
instancetype
)
initWithWithPage
:(
NSNumber
*
)
page
pageSize
:(
NSNumber
*
)
pageSize
{
self
=
[
super
init
];
if
(
self
)
{
self
.
params
=
[
NSMutableDictionary
dictionary
];
self
.
defintion
=
[
NSMutableDictionary
dictionary
];
self
.
arrFetchParts
=
[
NSMutableArray
array
];
self
.
orders
=
[
NSMutableArray
array
];
self
.
conditions
=
[
NSMutableArray
array
];
[
self
.
defintion
setValue
:
page
forKey
:
@"page"
];
[
self
.
defintion
setValue
:
pageSize
forKey
:
@"pageSize"
];
[
self
.
defintion
setValue
:
@0
forKey
:
@"probePages"
];
[
self
.
defintion
setObject
:
self
.
conditions
forKey
:
@"conditions"
];
[
self
.
defintion
setObject
:
self
.
orders
forKey
:
@"orders"
];
[
self
.
params
setObject
:
self
.
defintion
forKey
:
@"defintion"
];
}
return
self
;
}
-
(
void
)
addOrderField
:(
NSString
*
)
order
direction
:(
NSString
*
)
direction
{
NSDictionary
*
myDictionary
=
@{
@"field"
:
order
,
@"direction"
:
direction
};
[
self
.
orders
addObject
:
myDictionary
];
}
-
(
void
)
addConditionsOperation
:(
NSString
*
)
condition
value
:(
NSString
*
)
value
{
NSDictionary
*
myDictionary
=
@{
@"operation"
:
condition
,
@"parameters"
:
@[
value
]};
[
self
.
conditions
addObject
:
myDictionary
];
}
@end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment