Created
June 19, 2021 10:08
-
-
Save marchyuu/a0b49ecb02a5f33417571814be53af82 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ProductForm.swift | |
// Glame | |
// | |
// Created by Jenifer Yolanda on 07/04/21. | |
// | |
import UIKit | |
import CloudKit | |
class ProductForm: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate,UIPickerViewDelegate, UIPickerViewDataSource{ | |
var fetchedFrameType: String? | |
var fetchedBrandName: String? | |
var fetchedBrandType: String? | |
var fetchedDesc: String? | |
var fetchedPrice: Int? | |
var fetchedStoreURL: String? | |
var fetchedProductImage: String? | |
@IBOutlet weak var frameType: UITextField! | |
@IBOutlet weak var brandName: UITextField! | |
@IBOutlet weak var brandType: UITextField! | |
@IBOutlet weak var Desc: UITextField! | |
@IBOutlet weak var price: UITextField! | |
@IBOutlet weak var storeURL: UITextField! | |
@IBOutlet weak var productImage: UIImageView! | |
@IBOutlet weak var saveBtn: UIButton! | |
var imagePicker = UIImagePickerController() | |
var picker = UIPickerView() | |
let privateDatabase = CKContainer(identifier: "iCloud.com.example.Glame").privateCloudDatabase | |
let pickerData = ["Cat Eye", "D-Frame", "Oversized", "Round", "Rimless"] | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
self.picker.delegate = self | |
self.picker.dataSource = self | |
frameType.inputView = picker | |
frameType.textAlignment = .center | |
//klo dikirim dari edit btn show ini : | |
// frameType.text = fetchedFrameType | |
// brandName.text = fetchedBrandName | |
// brandType.text = fetchedBrandType | |
// Desc.text = fetchedDesc | |
// storeURL.text = fetchedStoreURL | |
// productImage.image = UIImage(named: fetchedProductImage!) | |
// | |
// let formatter = NumberFormatter() | |
// formatter.locale = Locale(identifier: "id_ID") | |
// formatter.numberStyle = .currency | |
// if let priceDec = formatter.string(from: fetchedPrice! as NSNumber) { | |
// | |
// price.text = "\(priceDec)" | |
// | |
// } | |
} | |
func numberOfComponents(in pickerView: UIPickerView) -> Int { | |
return 1 | |
} | |
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { | |
return pickerData.count | |
} | |
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { | |
return pickerData[row] | |
} | |
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { | |
frameType.text = pickerData[row] | |
frameType.resignFirstResponder() | |
} | |
@IBAction func buttonClicked(_ sender: Any) { | |
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary){ | |
print("Album opened") | |
imagePicker.delegate = self | |
imagePicker.sourceType = .photoLibrary | |
imagePicker.allowsEditing = false | |
present(imagePicker, animated: true, completion: nil) | |
} | |
} | |
// func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!){ | |
// self.dismiss(animated: true, completion: { () -> Void in | |
// | |
// }) | |
// //print(image) | |
// productImage.image = image | |
// } | |
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { | |
self.dismiss(animated: true, completion: nil) | |
guard let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage else { | |
return | |
} | |
productImage.image = image | |
} | |
@IBAction func SaveClicked(_ sender: Any) { | |
saveBtn.isHidden = true | |
let categoryId = frameType.text! | |
let brandName = brandName.text! | |
let brandType = brandType.text! | |
let dec = Desc.text! | |
let price = Int64(price.text!) | |
let storeURL = storeURL.text! | |
let productImage = productImage.image! | |
let data = productImage.pngData(); // UIImage -> NSData, see also UIImageJPEGRepresentation | |
let url = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(NSUUID().uuidString+".dat") | |
do { | |
//try data!.writeToURL(url, options: []) | |
try data?.write(to: url!, options: []) | |
} catch let e as NSError { | |
print("Error! \(e)"); | |
return | |
} | |
let record = CKRecord(recordType: "Product") | |
record.setValue(categoryId, forKey: "categoryId") | |
record.setValue(brandName, forKey: "productBrand") | |
record.setValue(brandType, forKey: "productName") | |
record.setValue(dec, forKey: "productDescription") | |
record.setValue(price, forKey: "productPrice") | |
record.setValue(storeURL, forKey: "productLink") | |
record.setValue(CKAsset(fileURL: url!), forKey: "productImage") | |
privateDatabase.save(record) { (savedRecord, error) in | |
if error == nil { | |
print("Record Saved") | |
} else { | |
print("Record Not Saved") | |
} | |
print(error) | |
print(savedRecord) | |
} | |
} | |
} | |
/* | |
// MARK: - Navigation | |
// In a storyboard-based application, you will often want to do a little preparation before navigation | |
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { | |
// Get the new view controller using segue.destination. | |
// Pass the selected object to the new view controller. | |
} | |
*/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment